2010/03/13

Windows XPでのC#の動作の重さを解消する方法 (2)

C#でウィンドウ最小化時のスワップアウトを阻止する方法のつづき。

● WndProcをoverrideすることによって、ウィンドウメッセージ処理をinterruptできる。

http://www.atmarkit.co.jp/fdotnet/dotnettips/467wndproc/wndproc.html

知らなかった・・・。そんなことできるんだ。

● 最小化処理をinterrupt
先のコレ

http://support.microsoft.com/kb/293215/en-us

をC#で実装すると、こう

http://d.hatena.ne.jp/babydaemons/20080507/1210150398

なる。
これでフォームを最小化するだけでスワップアウトが発生するのは
防ぐことができる。

●ただし、

これをやると、最小化時にタスクバーからも表示が消えるので
タスクトレイにアイコンを置いておいて、そこから復帰させる用途じゃないと
そのままは使えない。
まぁ、そこまでしてスワップを避けたいソフトって常駐ソフトぐらいだから
まぁいっか。

2 件のコメント:

Shingo さんのコメント...
このコメントは投稿者によって削除されました。
Shingo さんのコメント...

ヒント:PInvoke+WIN32API