2012-03-27 21 views
5

カスタム/自己作成のexplorer.exeファイルを使用する際に、最小化されたプログラムの処理に関する助けが必要です..適切に処理されない限り、最小化されたプログラムは100x50pxのように縮小し、 C#でTimerを使い、 "アイコン的な"プロセスをチェックし、mainWindowHandlerをリストし、 "MoveWindow"で画面外に移動させました。それらを戻すには、私はハンドラと "ShowWindow"関数を使ってAWESOME ..という機能を使用します。しかし、私が言ったように、これは常時動作しているTimerを含んでいるので、これを達成するためのクリーナー/簡単な方法が必要です。最小化されたプログラムの処理

アイデア?ウィンドウが最小化されたときにイベントをフックして上げる方法

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

答えて

1

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

私は、ユーザーが任意のウィンドウにシステムメニュー(ALT +SPACE)を開き、それに追加の項目を追加したときにチェックするためにフックを使用するa CodeProject articleを発見しました。このコードを使用して、ユーザーが最小化ボタンを押すタイミングを確認し、そこに必要なコードを実行できます。

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

関連する問題