5

自分のアプリケーションとサードパーティのアプリケーションがあります。また、サードパーティ アプリケーションのウィンドウが最大化されていることを確認する必要があります。それを知る方法はありますか?
最初は、このウィンドウのイベントを処理するために独自のコールバック関数を使用できると考えていました。

SetWindowLong(hwnd, GWL_WNDPROC, (LONG)WindowProc);

しかし、この関数は「アクセスが拒否されました」というエラーで失敗します。そして、これには理由があります。自分が所有していないウィンドウ内の何かを変更することはあまり賢明ではありません。

それで、私は何をすべきですか?

4

2 に答える 2

1

GetWindowPlacement関数を使用します。GetWindowPlacement を呼び出す前に、必ず WINDOWPLACEMENT の length メンバーを sizeof(WINDOWPLACEMENT) に設定してください。

ウィンドウが最大化されている場合、返された WINDOWPLACEMENT 構造体の showCmd フィールドは、SW_MAXIMIZE (3) に等しい必要があります。

于 2013-10-02T13:28:28.877 に答える
1

ウィンドウが最小化または最大化されようとしているときに、実際に通知を受け取ることができます。WH_CBT_Hook をインストールしてリッスンするには、SetWindowsHook プロシージャを使用する必要があります。

WINdowsHooks に関する一般的な情報は次のとおりです。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Hooks/AboutHooks.asp

これは、VB で (WH_Mouse_Hook に対して) 何か似たようなことを行う方法を示すスレッドです。

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=581752&SiteID=1

お役に立てれば、

于 2013-10-02T13:29:39.037 に答える