我正在从MFC应用程序启动WPF应用程序。有时,当我启动WPF Applciation时,applciation确实会启动,但它不会出现在任务栏中。并留在主要应用程序后面。所以我一直在等待应用程序尚未启动。当我最小化主应用程序时,我发现它已经启动了。有谁可以请说明发生了什么?
由于
答案 0 :(得分:1)
您正在错误地使用ShellExecute。请看一下here。最后一个参数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.