1

MFC アプリケーションから WPF アプリケーションを起動しています。WPF アプリケーションを起動すると、アプリケーションは起動されますが、タスクバーに表示されないことがあります。メインアプリケーションの背後にとどまります。そのため、アプリケーションがまだ起動していないことを待ち続けます。メイン アプリケーションを最小化すると、既に起動されていることがわかります。誰が何が起こっているのか特定できますか?

ありがとう

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 に答える