ショッピングモール  掲示板ランキング


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    使用可能タグ一覧

No.2706

キーボードのグローバルフックについて
投稿者---yosiko(2004/09/26 10:48:19)


WindowsXP,VisualStudio.NETを使用しています。
DLLを作成してキーボードフック関数を使うと
IME入力ができなくなりました。
どうすればいいでしょうか?


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:キーボードのグローバルフックについて 2707 Sciggepy 2004/09/26 11:21:52


No.2707

Re:キーボードのグローバルフックについて
投稿者---Sciggepy(2004/09/26 11:21:52)


CallNextHookExを呼んでいますか?


この投稿にコメントする

削除パスワード

No.2708

Re:キーボードのグローバルフックについて
投稿者---yosiko(2004/09/26 13:33:30)


>CallNextHookExを呼んでいますか?
はい、呼んでいます。
http://www.kab-studio.biz/Programing/Codian/DLL_Hook_SClass/08.html
を参考にしました。


この投稿にコメントする

削除パスワード

No.2709

Re:キーボードのグローバルフックについて
投稿者---Sciggepy(2004/09/26 13:47:24)


これだけでは分からないので、フックプロシージャを見たいです。


この投稿にコメントする

削除パスワード

No.2710

Re:キーボードのグローバルフックについて
投稿者---yosiko(2004/09/26 14:04:18)


>これだけでは分からないので、フックプロシージャを見たいです。
ありがとうございます。
これでよろしいでしょうか?
#define VK_A 0x41
#define VK_B 0x42
LRESULT CALLBACK CKeyboardHook::KeyboardProc(int p_nCode, WPARAM p_wParam, LPARAM p_lParam)
{
/*
if( p_nCode < 0 || p_nCode == HC_NOREMOVE )
return ::CallNextHookEx( m_hHook, p_nCode, p_wParam, p_lParam );
*/

UINT uiMsg;

if( p_lParam & 0x80000000 )
uiMsg = WM_KEYUP;
else
uiMsg = WM_KEYDOWN;

//++p_wParam;

if(p_wParam==VK_ADD)
{
p_wParam=VK_TAB;
}
if(p_wParam==VK_A)
{
p_wParam=VK_B;
}
::PostMessage( ::GetFocus(), uiMsg, p_wParam, p_lParam );
::CallNextHookEx( m_hHook, p_nCode, p_wParam, p_lParam );

return TRUE;

}


この投稿にコメントする

削除パスワード

No.2711

Re:キーボードのグローバルフックについて
投稿者---Sciggepy(2004/09/26 14:37:05)


ソースは変換してから貼り付けましょう。
    ::PostMessage( ::GetFocus(), uiMsg, p_wParam, p_lParam );
    ::CallNextHookEx( m_hHook, p_nCode, p_wParam, p_lParam );

    return TRUE;

}
の部分ですが、自前で処理しないメッセージに対してTRUEを返してはいけません。
自分で処理した場合だけ
::PostMessage( ::GetFocus(), uiMsg, p_wParam, p_lParam );
return TRUE;
とし、それ以外は
return ::CallNextHookEx( m_hHook, p_nCode, p_wParam, p_lParam );
としましょう。



この投稿にコメントする

削除パスワード

No.2712

Re:キーボードのグローバルフックについて
投稿者---yosiko(2004/09/26 15:07:19)


>ソースは変換してから貼り付けましょう。<pre>
以後気をつけます。
長々とお付き合いいただき、ありがとうございました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    使用可能タグ一覧




掲示板提供:Real Integrity