2016-06-09 29 views
0

我注意到,當我運行一些創建tmp文件的安裝程序時,即使tmp文件具有空白圖標,Windows仍然能夠獲取正確的圖標。C#獲取臨時文件的「真實」圖標

我只是有一個while循環的背景工具,用於監視新進程並在窗體中顯示圖標。我正在使用SHGetFileInfo方法從隨進程提供的文件名中獲取圖標,但我不知道如何從給定的tmp文件名(如C:\...\is-0N5SF.tmp\setup.tmp)中提取「真實」圖標。

有什麼方法可以讓我創建/啓動tmp文件的過程,或者我可以將路徑解析爲真正的文件/圖標的方式嗎?

回答

1

臨時文件不需要必須有有圖標,因爲它們是短暫的,它們的內容由主機應用程序定義。 .tmp文件可能包含XML數據,Zip存檔,可執行文件或許多其他內容之一。獲取臨時文件的圖標不是獲取流程圖標的正確方法。

獲取進程窗口,使用GetClassInfoEx獲取窗口類數據,並複製hIcon成員。 (不是句柄,數據。)