多语言展示
当前在线:1359今日阅读:103今日分享:49

Delphi7模拟键盘按键

Delphi可以利用SendMessage和PostMessage模拟键盘操作,也可以直接使用Delphi封装好的Keybd_event方法模拟键盘按键的按下和抬起。
工具/原料
1

Delphi7

2

Windows电脑

方法/步骤
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.Button2Click(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

注意事项

使用Keybd_Event方法模拟按键运行程序时,要注意输入法切换到英文状态

推荐信息