我必须在我的MFC应用程序中打开一个外部程序,但是如果我已经单击了按钮,我不希望它打开另一个实例,而只是将它带到前面。文档说SW_SHOWNORMAL参数执行此操作,但它不适用于我。被调用程序是否也必须为此设置?
ShellExecute(NULL, "open", "C:\Test\blahblah.exe", NULL, NULL, SW_SHOWNORMAL);
谢谢, CP
答案 0 :(得分:4)
文档有点不清楚,这可能让你感到困惑。在定位可执行程序时,ShellExecute()
将始终启动新进程。文档在提及恢复最小化窗口时所指的是,如果您要定位文档(如Word文档),则注册以显示文档的应用程序已在运行。
你最好的选择是:
FindWindow()
尝试找到外部应用程序,然后仅运行ShellExecute()
(如果它尚不存在),否则激活现有窗口。