visual c++ - how to sent, keyboard message mirror to edit1 control -
gMsgHook = SetWindowsHookEx (WH_KEYBOARD_LL, GetMsgHookProc, ghInstDll, 0);
...... ।
extern "सी" HOOK_DLL_API LRESULT कॉलबैक GetMsgHookProc (पूर्णांक nCode, wParam wParam, lParam lParam) {अगर (nCode & LT; 0) {CallNextHookEx (gMsgHook, nCode, wParam, lParam); } KBDLLHOOKSTRUCT * डीएल = (KBDLLHOOKSTRUCT *) wParam; अगर (nCode & gt; = HC_ACTION) {// hEdit1 // does not को टाइपिंग काम SendMessage को संदेश दर्पण (hEdit1, wParam, wParam, lParam); } वापसी CallNextHookEx (gMsgHook, ncode, wParam, lParam); }
अपने कोड स्निपेट में कई त्रुटियाँ हैं।
सबसे पहले, हुक को पारित करने वाला KBDLLHOOKSTRUCT lParam में है, नहीं wParam। डब्लूपीएआरएम में खिड़की संदेश है।
दूसरा, आप lParam को संपादन नियंत्रण के रूप में पास करते हैं। आपको उपयुक्त lParam (WM_KEYDOWN, WM_KEYUP, आदि के लिए दस्तावेज़ीकरण देखें) का निर्माण करने की आवश्यकता है।
तीसरा, आप wParam को हुक प्रोक (जो संदेश है) के रूप में पुनर्रचित कुंजीपटल संदेश के लिए wParam के रूप में पास करें । - यह आभासी कुंजी कोड है कि आप KBDLLHOOKSTRUCT से प्राप्त किया जाना चाहिए
चौथा, अगर nCode & LT; 0 आप दोबारा CallNextHookEx को बुलाओगे।
Comments
Post a Comment