1

我正在从 MFC 应用程序启动 WPF 应用程序。有时,当我启动 WPF Applciation 时,applciation 确实启动了,但它没有出现在任务栏中。并留在主应用程序后面。所以我一直在等待应用程序尚未启动。当我最小化主应用程序时,我看到它已经启动了。谁能确定发生了什么?

谢谢

4

1 回答 1

1

您错误地使用了 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。

于 2013-10-07T21:22:00.167 回答