如何检查安装在计算机总数ShellIconOverLayIdentifers使用C++
问题描述:
我需要检查安装在计算机编程方式使用C++和Win32 API总数ShellIconOverLayIdentifers。如何检查安装在计算机总数ShellIconOverLayIdentifers使用C++
我可以检查以下路径下的标识符,以获得总计数?
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers
答
您可以使用RegQueryInfoKey
该代码进行测试和工作:
#include "stdafx.h"
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
LSTATUS lStat;
HKEY hKey;
DWORD dwSubKeys;
lStat = RegOpenKeyExA(
HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\explorer\\ShellIconOverlayIdentifiers",
0L, KEY_READ | KEY_WOW64_64KEY, &hKey);
if(lStat == ERROR_SUCCESS)
{
lStat = RegQueryInfoKeyA(
hKey, NULL, NULL, NULL,
&dwSubKeys, NULL, NULL,
NULL, NULL,NULL, NULL, NULL);
printf_s("Subkeys : %u\n", dwSubKeys);
RegCloseKey(hKey);
}
return 0;
}
UPDATE:
基于JChan的调查,以下键访问需要在64位版本的Windows:
KEY_READ | KEY_WOW64_64KEY
IIRC,让你知道有多少处理器,但每次他们正在使用的不是有多少。 (我前一段时间的意见是,答案总是“太多”,如果可能的话要做点别的事情,但当然,“如果可能”并不总是成功)。 – 2012-08-15 19:20:57
感谢乔恩的有效信息 – JChan 2012-08-15 19:59:12
不一定有效,因此使得它与“IIRC”,而不是回答的评论。 – 2012-08-15 20:07:52