获取CLSID密钥问题

时间:2017-07-11 16:39:31

标签: c++ winapi

我希望std::ostream& operator<<(std::ostream& o, const X& x) { o << x._x; return o; } 上的CLSIDControl Panel Add or Remove Programs获得Windows XP

示例: shell:::{26EE0668-A00A-44D7-9371-BEB064C98683} - 仅适用于Vista(控制面板)。

有任何建议如何获得它?

1 个答案:

答案 0 :(得分:1)

  

我想获得控制面板的CLSID

您可以使用shell:ControlPanelFolder代替supported on Win XP的CLSID。

您也可以通过SHGetSpecialFolderLocation()传递参数nFolder,通过CSIDL_CONTROLS获取文件夹位置。

  

和添加或删除程序

Raymond Chen有一个blog post,他comments

  

Windows NT / 2000 / XP没有&#34;程序和功能&#34;文件夹,所以   这个问题没有实际意义。如果你的意思是&#34;枚举所有已安装的   应用程序&#34;,没有内置的方法来做到这一点。你必须   模仿&#34;添加/删除程序&#34;是的,这是凌乱的,因为   添加/删除程序枚举某些可能不存在的应用程序   很明显(比如MSI商店)。