私は.exe Windowsデスクトップアプリケーション(WinForm)を持っていますが、その.exeファイルのコードにアクセスすることはできません。私はダブルクリックイベントをそのアプリケーションにすでにレンダリングされている.exeコントロールに処理したい。クリックイベントを.exeファイルコントロールに添付するにはどうすればいいですか?
私はそれのコードを持っていないので、私はこれを行うために次のアプローチを始めました。
- 私はバックグラウンドで実行され、フックの概念を使ってすべてのダブルクリックイベントをキャプチャしています。
デスクトップ上でダブルクリックイベントが発生すると、自分の.exeが実行されているかどうかを確認します。
Process.GetProcesByName( "My exe name");
私の.exeが実行されている場合は、ビジネスロジックを実行します。
問題:私の.exeが実行中でフォアグラウンドではないときにビジネスロジックを呼びたくない。それは前景にあるはずですが、ビジネスロジックと呼ぶだけです。
ここで、自分の.exeがフォアグラウンドであるかどうかを私のC#コードで伝えたいと思います。
アプローチ自体が正しくない場合は、これを行う他の方法を教えてください。
[別のアプリケーションのイベントを取得する]の可能複製(http://stackoverflow.com/questions/7904544/getting-events-of-another-application) – Tokk
は理由全域フッキングそのまで重複しませんうまく動作します。私の.exeがフォアグラウンドであるかどうかをチェックする際に問題が発生します。 –