我正在从 MFC 应用程序启动 WPF 应用程序。有时,当我启动 WPF Applciation 时,applciation 确实启动了,但它没有出现在任务栏中。并留在主应用程序后面。所以我一直在等待应用程序尚未启动。当我最小化主应用程序时,我看到它已经启动了。谁能确定发生了什么?
谢谢
您错误地使用了 ShellExecute。请看这里。最后一个参数 nShowCmd 是:
指定应用程序打开时如何显示的标志。如果 lpFile 指定了一个文档文件,则该标志被简单地传递给相关的应用程序。由应用程序决定如何处理它。这些值在 Winuser.h 中定义。
因此,您需要指定所需的 ShowWindow 标志。我建议使用 SW_SHOWNORMAL 或 SW_MAXIMIZE:
int nResult = (int)::ShellExecute(NULL, _T("open"), sExePath, NULL, NULL, SW_SHOWNORMAL);
或者
int nResult = (int)::ShellExecute(NULL, _T("open"), sExePath, NULL, NULL, SW_MAXIMIZE);
检查函数的返回码也是一个好主意。如果成功,则 nReturn 中的值应大于 32。