如何以编程方式查询 Windows 控制面板
How to query Windows Control Panel Programmatically?
我需要在整个 Windows
控制面板中搜索字符串(就像从开始菜单或控制面板资源管理器搜索C++ Windows 搜索一样),有人可以帮助我吗?
我已经尝试在控制面板虚拟文件夹中搜索,但不起作用...
编辑:它现在可以工作了! 但前提是符合正确的平台(x86 或 x64)(x86 剂量不适用于 x64 SO)
void CSearchView::BuildControlPanelCache()
{
CComPtr<IShellFolder> pDesktop;
SHGetDesktopFolder(&pDesktop);
PIDLIST_ABSOLUTE path;
SHGetKnownFolderIDList(FOLDERID_ControlPanelFolder,0,NULL,&path);
CComPtr<IShellFolder> pFolder;
pDesktop->BindToObject(path,NULL,IID_IShellFolder,(void**)&pFolder);
ILFree(path);
CComPtr<IEnumIDList> pEnum;
if (pFolder->EnumObjects(NULL,SHCONTF_NONFOLDERS|SHCONTF_FOLDERS,&pEnum)!=S_OK) pEnum=NULL;
if (!pEnum) return;
PITEMID_CHILD pidl;
while (pEnum->Next(1,&pidl,NULL)==S_OK)
{
STRRET strDispName;
if( pFolder->GetDisplayNameOf(pidl, SHGDN_NORMAL, &strDispName) == S_OK )
{
CComPtr<IQueryInfo> pLink;
if (SUCCEEDED(pFolder->GetUIObjectOf(NULL,1,(PCITEMID_CHILD*) &pidl,IID_IQueryInfo,NULL,(void**)&pLink)))
{
TCHAR *pwszTip;
pLink->GetInfoTip( 0, &pwszTip );
if ( pwszTip )
{
SHFree( pwszTip );
}
//pLink->Release();
}
}
ILFree(pidl);
}
}
它似乎可以解决问题!伙计们!
尝试搜索%SYSTEM%*.cpl
。 在某些系统上,%CSIDL_CONTROLS%*.cpl
.
您可以枚举所有控制面板项并搜索您要查找的项,请尝试此项和此项
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 查询SQLite数据库中的日期
- 在Linux for Windows上编译C++代码时出错
- 在Windows上用C++裁剪HBITMAP
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- 具有多个 OR 的 Xpath 查询不适用于 Windows 事件
- Windows 10 中的 MS Access 数据库 SQL 查询问题
- 无法从windows注册表中查询值
- Windows:如何在低级键盘挂钩中查询修饰键的状态
- 如何以编程方式查询 Windows 控制面板
- 查询Windows Active Directory信息
- 是否可以从用户模式的java应用程序查询特权windows服务
- 无法查询、运行或停止 Windows 服务
- 用于查询大文件的 Windows 文件系统 API