2011-07-07 14 views
0

C#を使用して、どのウィンドウが最大化コマンドを送信されているかをキャプチャするWindows APIを把握しています。そのコマンドをオーバーライドして、最大化されたウィンドウの境界線をウィンドウに伝える必要があります。外部アプリケーションの最大化コマンドを無効にする

たとえば、ユーザーが800x600の画面でメモ帳を最大化する場合、ウィンドウを実際に展開するサイズを指定する必要があります。メモ帳に位置200,0から600x600まで「最大化」するように指示するかもしれません。

このソリューションでは、ウィンドウが実際に最大化されているとは限りません。画面全体を最大化しないようにウィンドウを制御したい(または、サイズIに自動的に復元するようにしたいそれが私ができる最高のものであることを望みます)。

私が述べたように、私は自分のアプリケーションではなく、外部アプリケーション(メモ帳、Wordなど)を制御したいと思っています。私はC#でこのアプリケーションを書くことを好むでしょう。私は実行する必要があるアクションは次のとおりです。

  • キャプチャが最大化(またはサイズ変更)あなたがメッセージループウィンドウにフックする必要があります

答えて

0

イベント

  • 再調整、変更、ウィンドウのサイズ(http://msdn.microsoft.com/en-us/library/ms632595(v=VS.85).aspx用必要なAPIに関するドキュメント)。全体的には、P \ Invokesを大量に実行するか、Cと未処理のWin32 APIを使用することになります。

    私は確かではないんだけど、私は、Windowsのフックを使用して開始したいと考えています:http://msdn.microsoft.com/en-us/library/ms644990(v=VS.85).aspx私が働いていた基本的に何である

  • +0

    。私は、現在開いているすべてのウィンドウを基本的にループし、それらが特定のサイズにのみ最大化されていることを保証する半作業ソリューションを得ました。その後、私は他のアプリケーションへの変更を聞いて、大きすぎないことを再度確認しました。それはクルージュですが、それは動作します。 – IAmTimCorey

    関連する問題