16,472
社区成员
发帖
与我相关
我的任务
分享
int CBhoDlg::GetBho(void)
{
HKEY hKey;
LONG ret;
CString subKey = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects\\");
ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, subKey, 0, KEY_ALL_ACCESS, &hKey); //注意权限使用所有权限
if(ret != ERROR_SUCCESS)
{
//注册表打开失败
return 0;
}
//////////////////////枚举注册表的子键/////////////////////////////
DWORD dwIndex = 0; //子键的索引序号
TCHAR szSubKey[MAX_PATH] = _T(""); //接收子键名称的缓冲区
DWORD dwNameLen = MAX_PATH;
vector<CString> subKeyNames;
while(ERROR_SUCCESS == RegEnumKeyEx(hKey, dwIndex, szSubKey, &dwNameLen, NULL, NULL, NULL, NULL))
{
//开始枚举注册表的所有子键信息
subKeyNames.push_back(szSubKey);
memset(szSubKey, 0, sizeof(szSubKey));
++dwIndex;
}
RegCloseKey(hKey);
int i;
for(i = 0; i < subKeyNames.size(); ++i)
{
m_listBho.InsertItem(i, subKeyNames[i]);
}
return subKeyNames.size();
}