2010-11-18 82 views
1

我試圖做一個基本上模擬Windows控制面板的添加/刪除程序功能的應用程序。我目前正在使用註冊表,我沒有使用WMI,因爲它的速度非常慢,只能返回由.msi文件安裝的軟件,我正在閱讀的鍵有:如何從添加/刪除程序中獲取圖標控制面板

HKLM \ SOFTWARE \ Microsoft \的Windows \ CurrentVersion \卸載HKCU \ SOFTWARE \微軟\的Windows \ CurrentVersion \卸載HKLM \ SOFTWARE \ Wow6432Node \微軟\的Windows \ CurrentVersion \卸載HKCU \ SOFTWARE \ Wow6432Node \微軟\的Windows \ CurrentVersion \卸載

和我有我想想所有的軟件安裝,但有一個問題的圖標,我不知道如何提取出現在控制面板上的圖標。某些按鍵具有DisplayIcon屬性,但其他按鍵沒有。我嘗試了兩件事:

首先在DisplayIcon鍵上提取應用程序的圖標。

其次,嘗試識別C:\ Windows \ Installer \ FOLDER以提取某個文件的圖標。但並不完美,我只獲得約80%的圖標。我知道有很多程序可以很好地執行此操作,例如「SoftwareInformer」。

我讀了一下,我發現有關ARPPRODUCTICON和WiX的信息IconTable,但我不知道該表在哪裏,並且有什麼方法可以訪問它。

另外我搜索一個開放源代碼的應用程序,這樣做沒有運氣。

回答

3

我也許來不及爲黨,但如果你下

HKEY_CLASSES_ROOT\Installer\Products\{GUID} 

檢查,你會發現「ProductIcon」與路徑字符串值(不所有產品雖然)。 我認爲它基本上與{sys_drive}:\ Windows \ Installer {GUID}文件夾中的一樣。但即使「程序&功能」也不顯示所有圖標。

PS:而且,我當然不能張貼圖片,因爲我沒有足夠的積分,DOH ..

1

不是在控制面板小程序中列出的所有應用程序都有一個「應用程序」圖標 - 有的只是使用默認的圖標,例如,「Microsoft設備仿真器(64位)版本3.0 - ENU」

0

,如果你能讓你安裝的EXE 的路徑(獲得從註冊表值)

使用這種方法

radiobutton.Image = Icon.ExtractAssociatedIcon(_fullPath).ToBitmap(); 

// _ FULLPATH是你的EXE文件的路徑,如果EXE讓他們相關的圖標它完美

它正在100%,我

0

如果它是你正在尋找Windows自帶的圖標,你可能有更多的地方找到他們比你想象的(已經在你自己的機器上)。

我偶然發現了這條信息鏈接,同時排除了從圖標中刪除快捷箭頭問題。閱讀以下鏈接中的信息後,您很可能會找到您要查找的內容。該鏈接僅在大自然中提供信息,並且不提供圖標下載(畢竟,它們已經在您的計算機上)。

https://diymediahome.org/windows-icons-reference-list-with-details-locations-images/

相關問題