Page 1 of 1

Typing special chars with keybd_event

Posted: Thu Sep 21, 2017 9:24 am
by Dude
Hi dudes! :)

The following code is meant to type a copyright symbol by holding down the Alt key and typing 0169 on the numeric keypad.

But for some reason, it's not working. If I set UseAlt to 0, the 0169 definitely works and gets typed, so Alt is clearly the issue.

Any ideas on why it would be failing? Note: I don't want to use SendInput because I'm more interested in why this fails.

[Edit] Seems I'm not the only one with this problem: http://www.delphigroups.info/2/47/498662.html

Code: Select all

Sleep_(2000)

UseAlt=1

If UseAlt=1
  keybd_event_(#VK_MENU,0,0,0)
EndIf

keybd_event_(#VK_NUMPAD0,0,0,0) : keybd_event_(#VK_NUMPAD0,0,#KEYEVENTF_KEYUP,0)
keybd_event_(#VK_NUMPAD1,0,0,0) : keybd_event_(#VK_NUMPAD1,0,#KEYEVENTF_KEYUP,0)
keybd_event_(#VK_NUMPAD6,0,0,0) : keybd_event_(#VK_NUMPAD6,0,#KEYEVENTF_KEYUP,0)
keybd_event_(#VK_NUMPAD9,0,0,0) : keybd_event_(#VK_NUMPAD9,0,#KEYEVENTF_KEYUP,0)

If UseAlt=1
  keybd_event_(#VK_MENU,0,#KEYEVENTF_KEYUP,0)
EndIf

Re: Typing special chars with keybd_event

Posted: Thu Sep 21, 2017 5:43 pm
by RASHAD
What are you doing Dude?

Code: Select all

RunProgram("notepad.exe") ; Start Notepad...
Repeat 
  hwnd = FindWindow_(0,"Untitled - Notepad")
Until hwnd

SetForegroundWindow_(hWnd)
keybd_event_(#VK_MENU, MapVirtualKey_(#VK_MENU, 0), 0, 0);
keybd_event_(#VK_NUMPAD0, MapVirtualKey_(#VK_NUMPAD0, 0), 0, 0):keybd_event_(#VK_NUMPAD0, MapVirtualKey_(#VK_NUMPAD0, 0), #KEYEVENTF_KEYUP, 0)
keybd_event_(#VK_NUMPAD1, MapVirtualKey_(#VK_NUMPAD1, 0), 0, 0):keybd_event_(#VK_NUMPAD1, MapVirtualKey_(#VK_NUMPAD1, 0), #KEYEVENTF_KEYUP, 0);
keybd_event_(#VK_NUMPAD6, MapVirtualKey_(#VK_NUMPAD6, 0), 0, 0):keybd_event_(#VK_NUMPAD6, MapVirtualKey_(#VK_NUMPAD6, 0), #KEYEVENTF_KEYUP, 0);
keybd_event_(#VK_NUMPAD9, MapVirtualKey_(#VK_NUMPAD9, 0), 0, 0):keybd_event_(#VK_NUMPAD9, MapVirtualKey_(#VK_NUMPAD9, 0), #KEYEVENTF_KEYUP, 0);
keybd_event_(#VK_MENU, MapVirtualKey_(#VK_MENU, 0), #KEYEVENTF_KEYUP, 0)

Re: Typing special chars with keybd_event

Posted: Thu Sep 21, 2017 10:27 pm
by Dude
Thanks Rashad, I didn't know MapVirtualKey_() would be needed, because without Alt the other keys are typed without problem. Appreciate your helping me. :)