如何以编程方式打开控制面板?

viv*_*dos 4 winapi controlpanel

如何以编程方式打开自定义控制面板,例如custom.cpl?具体来说,如何在作为32位应用程序运行时打开64位cpl?

viv*_*dos 5

由于我没有在SO上找到一个好的答案,这是我研究的解决方案:

  • 启动一个新的应用程序"control",它将控制面板的名称作为其第一个参数:
::ShellExecute(m_hWnd, NULL, _T("control.exe"), _T("access.cpl"), NULL, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)


And*_*ers 5

Vista增加了对规范名称的支持,因此您不必硬编码DLL文件名和选项卡索引

示例:WinExec("%systemroot%\ system32\control.exe/name Microsoft.WindowsUpdate",SW_NORMAL);

(姓名总是英文)

有关列表,请参阅MSDN

XP/2000支持"control.exe鼠标"和一些其他关键字,请参阅相同的MSDN页面列表(您可以通过在control.exe上运行字符串找到一些未记录的)


小智 5

只需使用这个....

ProcessStartInfo startInfo = new ProcessStartInfo("appwiz.cpl");
startInfo.UseShellExecute = true;
Process.Start(startInfo);
Run Code Online (Sandbox Code Playgroud)