2017-07-11 159 views
1

我想獲得CLSIDControl PanelAdd or Remove ProgramsWindows XP獲取CLSID密鑰問題

示例: shell:::{26EE0668-A00A-44D7-9371-BEB064C98683} - 只適用於Vista(控制面板)。

任何建議如何得到它?

+0

您打算如何處理CLSID? – zett42

+0

@ zett42 我想通過'SHParseDisplayName'函數使用'Shell'在'Win XP'上安裝應用程序信息。 – Cobra91151

回答

1

我想CLSID爲控制面板

可以使用shell:ControlPanelFolder代替CLSID是supported on Win XP

您還可以通過SHGetSpecialFolderLocation()通過CSIDL_CONTROLS得到參數nFolder的文件夾位置。

和添加或刪除程序

雷蒙德陳有blog post,他comments

的Windows NT/2000/XP不具備 「程序和功能」 文件夾,所以 這個問題是沒有意義的。如果您的意思是「枚舉所有已安裝的 應用程序」,則沒有內置的方法來執行此操作。你必須 模仿什麼「添加/刪除程序」,這是凌亂的,因爲 添加/刪除程序枚舉應用程序從一些地方,可能不是 明顯(如MSI商店)。

+0

我會檢查並稍後回覆。謝謝。 – Cobra91151

+0

我認爲獲取應用程序信息的唯一方法是檢查註冊表中的Uninstall鍵嗎? – Cobra91151

+0

是的,但正如Raymond寫道,_Add/Remove Programs從某些可能不明顯的地方枚舉應用程序_。我不知道這些地方是什麼。 – zett42