0

Setup2goとInstallmateBuilderの2つのインストーラーを試しましたが、同じ問題が発生します。インストールの最後のウィンドウで、[インストール終了後にプログラムを開く]オプションを選択すると、(約10%の確率で?)、使用したWindowsエクスプローラーのディレクトリウィンドウの後ろに(Winforms)アプリのメインウィンドウが開くことがあります。からインストールexeを開きます。

イライラするのは、問題を確実に再現するのに問題があることです(問題は10〜20%の確率で発生するようです)。違いがあれば、私はWindows7を使用しています。明確にするために、実行可能ファイルを(インストールexeからではなく)直接開いた場合、問題は発生しません。

この種のことについての私の知識は限られています-私はこの質問からMessageBoxで起こった同様の欲求不満を思い出します

何か案は?

4

2 に答える 2

0

シェルがフォーカスを「盗む」ことを許可するため、インストーラーから直接アプリを起動した場合は発生しません。インストーラーから起動すると、最後の操作はインストーラーアプリで行われます。システムは、新しいウィンドウがインストーラーからフォーカスを奪うのを防ぎます。インストーラーウィンドウが閉じると、インストーラーの起動に使用したエクスプローラーウィンドウがアクティブになります。フォアグラウンドウィンドウの切り替えが最近発生したため、システムはフォアグラウンドウィンドウを変更することを許可していません。

一方、インストーラーウィンドウが画面から消える前にアプリケーションウィンドウが表示された場合、アプリはZオーダーでインストーラーの下に配置されます。インストーラーウィンドウが最終的に非表示になると、アプリケーションウィンドウがアクティブになります。

つまり、ウィンドウの表示と非表示のタイミングにすべて関係しています。
私はこの分野の専門家ではありませんが。メッセージトレーサーとSpyxxのようなWinAPI呼び出しトレーサーを使用すると、システムで何が起こっているのか、アプリケーションの新しいウィンドウがエクスプローラーウィンドウの下に配置される理由の詳細を知ることができます。

于 2012-08-18T17:23:59.240 に答える