我有一个基于Windows的应用程序。我试图按以下方式打开控制面板项目:
EnumWindows(EnumWindowsProcMy, ppid);
IOpenControlPanel *pPanel = NULL;
CoInitialize(nullptr);
HRESULT hr = CoCreateInstance(CLSID_OpenControlPanel, NULL,
CLSCTX_INPROC_SERVER, IID_IOpenControlPanel,
(void**)&pPanel);
if (FAILED(hr)) {
return -1;
}
pPanel->Open(CUSTOM_GUID, NULL, NULL);
然而,这会在新窗口中打开控制面板项。有没有办法导航到已经打开的窗口中的控制面板项?我有窗户把手。
答案 0 :(得分:0)
如果你已经有一个正在运行的控制面板实例,你可以这样做。
检索指向已注册的正在运行的对象的指针。
示例代码
IUnknown *puk = NULL;
HRESULT hr = GetActiveObject(CLSID_OpenControlPanel, 0, &puk);
return (hr == S_OK);