標籤:winform style blog class java tar
【摘要】
有時我們需要隱藏程式中的一些資源,比如遊戲,過關後才能看到圖片,那麼圖片就必須隱藏起來,否則不用玩這個遊戲就可以看到你的圖片了,呵呵。
本文就講述了如何把檔案(比片,WORD文檔等等) 隱藏到DLL中,然後在程式中可以自己根據需要匯出圖片進行處理。
註:本站原創,轉載請註明本站網址:http://www.beinet.cn/blog/
【全文】
第1步:
我們要產生一個資源檔,先把要隱藏的檔案放入到這個資源檔中
(資源檔大致可以存放三種資料資源:位元組數組、各種對象和字串)
首先建立一個類的執行個體:
ResourceWriter rw = new ResourceWriter("MyResource.resources");//括弧裡是檔案名稱
用ResourceWriter類的AddResource()方法添加資源,有三個重載:
| public void AddResource(string, byte[]); public void AddResource(string, object); public void AddResource(string1, string2); |
前面的string是放入資源檔後的標識符,第二個參數就是要放的具體資源了。
資源添加後,調用ResourceWriter類的Generate()方法,就可以產生一個資源檔
詳細代碼如下(代碼名為:Res.cs):
| using System; using System.Resources; using System.Drawing; namespace test{ class test{ static void Main(){ Console.Write("aaa"); ResourceWriter rw = new ResourceWriter ( "MyResource.resources" ) ; rw.AddResource("rsTest","Heool Word"); Icon ico = new Icon ( ".ico" ) ; rw.AddResource("ico",ico); Image img = Image.FromFile ("3.jpg") ; rw.AddResource("img",img); rw.Generate ( ) ; } } } |
調用CSC res.cs, 產生EXE檔案,再運行res.exe執行,就可以得到MyResource.resources檔案了。
第2步:
下面就是要把產生的資源檔嵌入到最後產生的程式中,嵌入程式的編譯命令:
| csc /res:MyResource.Resources /target:winexe yourProgram.CS |
然後就可以在WinForm中引用這個資源檔中的對象了,首先:
| System.Resources.ResourceManager resMan = new ResourceManager ( "MyResource" , System.Reflection.Assembly.GetExecutingAssembly() ); |
產生這個檔案的引用,"MyResource"是資源檔的檔案名稱,必須以resources為副檔名。
接著在程式裡:
| string getFromRS = (string)resMan.GetString("rsTest"); //擷取資源檔中的字串
System.Drawing.Icon GetIcon = (System.Drawing.Icon)resMan.GetObject("ico"); //擷取資源檔中的表徵圖
System.Drawing.Image GetIcon = (System.Drawing.Image)resMan.GetObject("img"); //擷取資源檔中的圖片 |
取出資源檔中的內容,就可以直接使用了。
這樣可以把一些內容或對象直接附加到EXE或DLL中,達到保密,或減少檔案個數的目的。