2010-01-18 62 views
3

有誰知道一個API函數從RAM中的可執行文件(內部,比如MemoryStream)中提取圖標資源?從內存中的可執行文件提取圖標

到目前爲止,我所見過的所有圖標解壓縮函數都依賴於磁盤上存在的可執行文件。我想提取圖標,而不必將exe寫入臨時文件,然後從中加載資源。

回答

0

這是從來沒有一個真正的概率LEM。 Windows有一個硬件要求,即可執行文件是磁盤上的文件。否則,您無法開始流程。由於您必須將該文件寫入磁盤,因此使用需要文件路徑的API從源文件中提取資源永遠不會有問題。

+0

謝謝;我必須咬那個子彈。 – 2010-01-18 20:18:23

+0

「這絕不是一個真正的問題」 - 可悲的是,你不能確定什麼問題是「真實的」。例如,我想從網絡捕獲中拖動圖標而不接觸磁盤。 – EricLaw 2015-07-21 14:59:56

0

如果我們談論的是採取圖標從已經建立DLL使用反射

http://www.red-gate.com/products/reflector/ 

打開DLL和只需點擊圖標用鼠標右鍵,點擊另存爲 也可以做到這一點通過代碼使用反射

Assembly myAssembly = Assembly.Load("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3"); 
Stream myStream = myAssembly.GetManifestResourceStream("MyNamespace.SubFolder.MyImage.bmp"); 
Bitmap bmp = new Bitmap(myStream); 

最好的問候, 約爾丹

+1

我認爲他具體說他想從內存中讀取圖標。 – gbianchi 2010-01-18 15:55:23