VFP调用API模拟键盘的问题
想用VFP调用API模拟键盘把VFP写的程序里的数据写到其它程序的界面控件里,于是写了个测试表单如下:
先用RegisterHotKey注册热键Ctrl+Alt+V,并绑定表单事件HkTest中,然后在HkTest中写入如下代码:
#DEFINE VK_CONTROL 0x11
#DEFINE KEYEVENTF_KEYUP 0x02
#DEFINE KEYEVENTF_KEYDOWN 0x00
CLEAR TYPEAHEAD
_cliptext = This.Label1.Caption
keybd_event( VK_CONTROL, 0, KEYEVENTF_KEYDOWN, 0 )
keybd_event( Asc('V'), 0, KEYEVENTF_KEYDOWN, 0 )
keybd_event( Asc('V'), 0, KEYEVENTF_KEYUP, 0 )
keybd_event( VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 )
keybd_event( 13, 0, KEYEVENTF_KEYDOWN, 0 )
keybd_event( 13, 0, KEYEVENTF_KEYUP, 0 )
_cliptext = This.Label2.Caption
keybd_event( VK_CONTROL, 0, KEYEVENTF_KEYDOWN, 0 )
keybd_event( Asc('V'), 0, KEYEVENTF_KEYDOWN, 0 )
keybd_event( Asc('V'), 0, KEYEVENTF_KEYUP, 0 )
keybd_event( VK_CONTROL, 0, KEYEVENTF_KEYUP, 0 )
keybd_event( 13, 0, KEYEVENTF_KEYDOWN, 0 )
keybd_event( 13, 0, KEYEVENTF_KEYUP, 0 )
测试愿意是把表单的Label1和Label2的Caption写到其它程序界面的控件里(这两个Label的Caption分别是“Label1”和“Label2”,我测试时是用Win自带的记事本来试的,先运行上面的表单,然后切换到记事本里,按下Ctrl+Alt+V,结果记事本里出现了:
Label2
Label2
Label2
Label1
Label2
Label2
Label1
Label2
Label2
Label1
Label1
Label2
Label1
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label1
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
Label2
这样一大串的东西,而且每次按下Ctrl+Alt+V出现的具体文本会不同,但大致都是如此形式,请问各位大大问题出在哪了?