2017-07-11 101 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