最新閲覧日:

dll のソースの一部です。

LRESULT CALLBACK MyHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
 if ( wParam == 0x31 )処理;
 return CallNextHookEx(hHook, nCode, wParam, lParam);
}

処理の部分では、MessageBox( ) とか MessageBeep( ) ぐらいしか
使えません。
「ぬ」 のキーが押されたら、メインのウインドウのエディットボックスの
文字を書き替えたりしたいんだけど、キーボードフックのプロージャの
中では、文字列の書き替えをすると、アプリケーションが強制終了します。
メモリマップドファイル、グローバルメモリの書き替えもやってみたけど
キーボードフックのプロージャの中からはできませんでした。

dll の中なのに、キーボードフックのプロージャの中では
自分自身を LoadLibrary( ) して、GetProcAddress( ) とかしないと
メモリの書き換えとかができないんですか?
キーボードフックのプロージャの良い活用法を教えてください。

A 回答 (1件)

なんか、質問の最後の辺りがよくわからないままの回答ですが…。



別にメモリを共有して書き換えたりしないでも、
その「ぬ」のキーコードを検知したら、
別のキーコードをPostMessageとかしときゃいいんじゃないですか?
純粋に「書き換えたい」というか「差し替えたい」みたいな用途の場合、ダメですけど。

あと、細かいですけど、「procedure」だから「プロージャ」ではなく「プロシージャ」です。
    • good
    • 0
この回答へのお礼

プロシージャ知りませんでした。
ありがとうございます。

フックプロシージャ内では PostMessage( ) も
使えませんでした。
キーボードフックというものが用意されている限り、
メッセージボックスを出すだけとか、音を出すだけしか
できないなんてことはないと思います。
キーコードを検知して、その後何かのイベントを
しているようなソースのサンプルはどこかにないですか?

お礼日時:2002/04/14 20:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報