Re: Insert Keycode into Keyboard Buffer?
- Posted by Pete Lomax <petelomax at blueyonder.co.uk> May 31, 2004
- 573 views
On Sun, 30 May 2004 20:29:43 -0700, cklester <guest at RapidEuphoria.com> wrote: >Is it possible to insert a keycode into the keyboard buffer to make it >look as though that key were actually pressed? > I've used this successfully under Windows 98 / win32lib, can't remember where I got it from: constant KEYEVENTF_KEYUP = #02 atom user32, xkeybd_event, initKB initKB=0 procedure keybd(integer character) -- simulate a key press (and release!). -- character may be literal or a virtual key (eg VK_HOME) if not initKB then user32=open_dll("user32.dll") xkeybd_event = define_c_proc(user32, "keybd_event",{C_LONG,C_LONG,C_LONG,C_LONG}) initKB=1 end if c_proc(xkeybd_event,{character,0,0,0}) c_proc(xkeybd_event,{character,0,KEYEVENTF_KEYUP,0}) end procedure Not that you asked for it, but while I'm here, I also used this: procedure clickPointer(object dwFlags) if sequence(dwFlags) then dwFlags=or_all(dwFlags) end if w32Proc(xmouse_event,{dwFlags,0,0,0,0}) end procedure eg: if action=M_Left then clickPointer(MOUSEEVENTF_LEFTDOWN+MOUSEEVENTF_LEFTUP) end if To simulate mouse events, along with getPointerPos/setPointerPos. Regards, Pete