C ++ - 在同一窗口中打开控制面板项

时间:2016-11-10 13:57:21

标签: c++ windows-applications shell-extensions

我有一个基于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);

然而,这会在新窗口中打开控制面板项。有没有办法导航到已经打开的窗口中的控制面板项?我有窗户把手。

1 个答案:

答案 0 :(得分:0)

如果你已经有一个正在运行的控制面板实例,你可以这样做。

  

检索指向已注册的正在运行的对象的指针。

示例代码

IUnknown *puk = NULL;         
HRESULT hr = GetActiveObject(CLSID_OpenControlPanel, 0, &puk);
return (hr == S_OK);