5

カスタム/自作の explorer.exe ファイルを使用する際に、最小化されたプログラムの処理に助けが必要です。「アイコニック」プロセスをチェックし、それらの mainWindowHandler をリストし、「MoveWindow」で画面の外に移動するために、C# でタイマーを作成しました。それらを元に戻すには、ハンドラーと「ShowWindow」関数を使用しますが、これは素晴らしい動作をします..しかし、私が言ったように、これにはタイマーが常に実行されているため、これを実現するためのよりクリーンで簡単な方法が必要です。

何か案は?ウィンドウが最小化されているときにイベントをフックして発生させる方法はありますか?

*注意: show と movewindow は user32.dll の関数です。MY フォームが最小化されているときではなく、OTHERS プログラムが最小化されているときにキャッチしようとしています。

4

1 に答える 1

1

ウィンドウが最小化されていることを確認するためのフックを作成できます。

ユーザーが任意のウィンドウで システム メニュー ( + ) を開いたときにフックを使用してチェックし、追加の項目を追加する CodeProject の記事を見つけました。そのコードを使用して、ユーザーが最小化ボタンを押したときを確認し、そこで必要なコードを実行できます。ALTSPACE

CodeProject の記事は C++ で書かれていますが、同じ方法を C# に適用する (または P/Invoke を使用する) ことができます。

于 2012-03-28T08:19:16.693 に答える