DLLなしでグローバルWH_GETMESSAGE HOOKを作成しようとしていますが、成功できません。あなたが任意の時間を持っている場合は、私を助けてくださいDLLなしでグローバルWH_GETMESSAGE HOOKを作成する方法
SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,GetModuleHandle(NULL),0);
: 私のOSは、これは私のいくつかのコードで、Win7の32ビットです。 :)
DLLなしでグローバルWH_GETMESSAGE HOOKを作成しようとしていますが、成功できません。あなたが任意の時間を持っている場合は、私を助けてくださいDLLなしでグローバルWH_GETMESSAGE HOOKを作成する方法
SetWindowsHookEx(WH_GETMESSAGE,GetMsgProc,GetModuleHandle(NULL),0);
: 私のOSは、これは私のいくつかのコードで、Win7の32ビットです。 :)
HMOD
タイプ[IN]:フックプロシージャを含むDLLのHINSTANCE
ハンドルがlpfnパラメータによって指されます。 dwThreadIdパラメータが現在のプロセスによって作成されたスレッドを指定し、フックプロシージャが現在のプロセスに関連付けられたコード内にある場合は、hModパラメータをNULLに設定する必要があります。
hMod
必見DLLへのハンドルで。 EXEではありません。これは、実行中のすべてのプロセスにフックされるDLLがロードされ、そのコードがそのプロセス内から直接実行されるためです。
最後のパラメータは '0'であってはなりません。関数を呼び出すスレッドのスレッドIDである必要があります。最後と最後の両方にnullを渡すことはできませんパラメーター。現在のスレッドのIDを取得するには、GetThreadId()を使用します。これは、実行する可能性が高いです。
上記のポスターの回答は、あなたが読んだことがあれば、あなた自身がそれを見たことがあるでしょう。
ありがとう、私は妥協を見つけた、そして私は再びそれを試してみる:) – italkboy
あなたはは、SetWindowsHookEx
あなたの答えのためのwhile(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
感謝の呼び出し側のスレッドでメッセージループを必要とするが、それは私のために役に立たないようです。 – italkboy
他のやり方があると思います。ありがとう〜。 – italkboy
@italkboy、あなたは答えとして別の方法を書く必要がありますので、同じ問題を抱えている誰かが助けを得ているかもしれません... – bdonlan