私は、画面を完全に占有しようとしている別の積極的なアプリケーション(POSのもの)によって最小化される環境で実行されているDelphiアプリケーションを持っています。 2番目のアプリケーションが起動されると、ウィンドウを列挙し、それらを 'ShowWindow(handle、SW_MINIMIZE)'で打つことによって、ウィンドウを掘り下げて最小化します。Win32アプリケーションを最小限に抑える他のプログラムを停止する
私はこれらのコマンドを選択し、ウィンドウのサイズを変更/最小化するメッセージをブロックすることです。私はいくつかのハンドラをハックしてこの動作を捕捉しようと試みましたが、それでもSW_MINIMIZEはそれを隠します。そして、Winsightは、何かがリサイズしているなどの通知メッセージ以外は私にはあまり表示されていません。私はWMSysCommandメッセージのメッセージハンドラを入れましたが、これは最小化ボタンがクリックされたような動作を停止するようです。そして、私はWndProc関数をオーバーライドしてメッセージをフィルタリングしようとしましたが、それもそれをカットしません。
ShowWindow(ハンドル、SW_MINIMIZE)呼び出しがアプリケーションに与えられたときに何が起こるかを誰かが明らかにすることができたら、私はとても感謝しています!
おかげ テリー
あなたのアプリケーションをより高い整合性レベルで実行することができますか、または他のアプリケーションを低い整合性レベル(Vistaまたはそれ以上が必要)で実行できますか。私はこれにより、これを行うことが許可されている低い完全性のアプリケーションを停止するかもしれないと思う。私はこれを試していないし、それは少しの推測です。 –
クラシックをお楽しみください:[他の一番上のウィンドウで覆われていない一番上のウィンドウを作成するにはどうすればいいですか?](http://blogs.msdn.com/b/oldnewthing/archive/2011/03/10/10138969.aspx) –
私はそれがXPとWin2kで動作するようにしなければならないので、それは疑問です。私はそのアプローチについて疑問に思ったが、私はmsdnのドキュメントでそれを許可する呼び出しを見た。 – Terry