Re: Insert Keycode into Keyboard Buffer?

new topic     » goto parent     » topic index » view thread      » older message » newer message

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

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu