どうも、激烈なる初心者で申し訳ありません。
DLLのフックプロシージャで、
// フックするプロシジャー
LRESULT CALLBACK MyCallWndProc(int nCode,WPARAM wParam,LPARAM lParam)
{
if( nCode == HC_ACTION )
{
UINT msg;
if (lParam & 0x80000000)
msg = WM_KEYUP;
else
msg = WM_KEYDOWN;
if (msg == WM_KEYUP)
{
//ここで、wParamの値を呼び出したEXE側に渡したいのですが...
}
}
return CallNextHookEx(g_hHookWnd, nCode, wParam, lParam); //次のフックを呼ぶ
}
どうしたら出来るでしょう。教えてください。
n_n さんへ
現在作られているフックのプログラムの内容は 直前に書かれた下記の過去ログの内容
ですか??
> http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200604/06040042.txt
もし、そうであるならば
i) フックをインストールする際に 共有メモリを作成し 呼び出し側のアプリのハン
ドルを共有メモリで保持する。
ii) その保持したハンドルを利用して PostMessage() とかSendMessage()すれば問題
ないはずです。
フックに関して当掲示板にたくさんの質問が書かれているので、一度過去ログを検索
してみてください。
ああそうか、なるほど。有り難うございます。
それでいけますね。
ところで、新しいスレを立てる必要があるかも知れませんが、任意の現在働いているプ
ロセスのウインドウハンドルを取得することは、可能なんでしょうか?
任意のを取得なら FindWindow なり何なりでどうにでもなると思いますが、
呼び出し側のアプリが特定されているなら、フックをインストールするときに
引数としてアプリから DLL にウィンドウハンドルを渡すのが一般的ではないでしょう
か。
どうも、ありがとうございます。
DLLの場合は、いんすう渡しでいけました。
なるほど、FindWindowなるAPIがあるのですか。使ってみます。
> いんすう渡しでいけました
念のためツッコんでおくが、「ひきすう」ね。