Delphi7模拟键盘按键
1、打开Delphi7集成开发环境,并在默认窗体上放置一个Edit1编辑框和Button1文本框。
2、双击窗体的Button1按钮,进入Button1的OnClick响应方法,在方法中编写如下代码:procedure TForm1.Button1Click(Sender多唉捋胝: TObject);begin PostMessage(Edit1.Handle,WM_KEYDOWN,VkKEYScan('a'),0);end;解释一下:PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam)hWnd:其窗口程序将接收消息的窗口的句柄。Msg:指定被发送的消息。wParam:指定附加的消息指定信息。IParam:指定附加的消息指定信息。VkKEYScan('a')是键盘a键的硬件扫描码
3、F9运行程序后,点击Button1按钮会发现Edit1的内容变成a
4、关闭程序后,再向窗体添加一个Edit2文本框,和Button2按钮,设置Edit2的AutoSelect属性为False。
5、双击窗体的Button1按钮,进入Button1的OnClick响应方法,模拟键盘按钮按下锕润炮塾抬起的过程在方法中编写如下代码:procedure TForm1.Button2Click(Sender: TObject);begin Edit2.SetFocus; Keybd_Event(ord('R'),MapVirtualKey(ord('R'),0),0,0); Keybd_Event(ord('R'),MapVirtualKey(ord('R'),0),KEYEVENTF_KEYUP,0);end;解释一下:keybd_event(mKey, mScanCode, mFlags, 0)第一个为按键的虚拟键值,第二个参数为扫描码第三个参数为选项标志第四个参数一般置0即可。MapVirtualKey(ord('R'),0)获取硬件扫描码
6、F9运行程序后,点击Button2按钮会发现Edit2的内容变成rEdit2
7、模拟岳蘖氽颐按下组合按键,更改Button2的OnClick的事件响应方法如下:procedure TForm1.Butto荏鱿胫协n2Click(Sender: TObject);begin Edit2.SetFocus; Keybd_Event(VK_LSHIFT,MapVirtualKey(VK_LSHIFT,0),0,0); Keybd_Event(ord('R'),MapVirtualKey(ord('R'),0),0,0); Keybd_Event(VK_LSHIFT,MapVirtualKey(VK_LSHIFT,0),KEYEVENTF_KEYUP,0);end;模拟按住Shift再按R键
8、F9运行程序后,点击Button2按钮会发现Edit2的内容变成REdit2