質問: お世話になります。 表題の件に付きましてお力添えを頂けますでしょうか? 現在VB.NETでアプリケーションを作成しております。 作成中のアプリケーションA(WindowsFormアプリケーション)から他アプリケーションB(例.cmd.exe)をProcess.startで起動します。 この時アプリケーションBに対するウインドウメッセージをリアルタイムに取得(確認)をする方法はありますでしょうか? WIN32APIのGetMessage 関数がそれに当たるのではないかと当たりをつけて調べていますがVB.NETでどのように実装すべきか見当がつかない状況です。 よろしくお願いします。
回答: 一般論としては`SetWindowsHookEx`でフック可能です。 しかしVisual Basic.NETで`SetWindowsHookEx`を呼び出す場合、VBではネイティブDLLを作成することが出来ませんので、引数として指定できるのは低レベルフックの`WH_KEYBOARD_LL`と`WH_MOUSE_LL`に限られます。 なのでメッセージをすべてフックするような純.NETアプリの実装は不可能だと思います。