加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

使用WinAPI在Delphi中模拟键盘输入

发布时间:2020-12-15 04:29:56 所属栏目:大数据 来源:网络整理
导读:我需要以编程方式将一个字符输入Delphi网格的单元格(在其他应用程序中). 要手动执行此操作,需要执行以下步骤: 按F3按钮. 按右箭头键3次. 按空格键. 在键盘上键入字母’E’. 按右箭头键. // Press F3 button keybd_event(VK_F3,0); // Press right arrow key
我需要以编程方式将一个字符输入Delphi网格的单元格(在其他应用程序中).

要手动执行此操作,需要执行以下步骤:

>按F3按钮.
>按右箭头键3次.
>按空格键.
>在键盘上键入字母’E’.
>按右箭头键.

// Press F3 button         
 keybd_event(VK_F3,0);         
 // Press right arrow key 3 times
 keybd_event(VK_RIGHT,0);
 keybd_event(VK_RIGHT,0);

 // Press the space button
 keybd_event(VK_SPACE,0);

 // Type letter E
 keybd_event(Ord('E'),0);

 // Move to the right
 keybd_event(VK_RIGHT,0);

但它不起作用.当我运行此代码时,似乎没有任何事情发生.

我应该如何修改此代码,以便它实际模拟用户输入?

解决方法

每按一次按键,然后是按键.因此,每按一次键需要两次调用keybd_event.例如,要按F3:
keybd_event(VK_F3,KEYEVENTF_KEYDOWN,0);
keybd_event(VK_F3,KEYEVENTF_KEYUP,0);

请注意,KEYEVENTF_KEYDOWN实际上并不是由Windows头文件或Delphi转换定义的.将它定义为0.它使代码更清晰明确地写出来.

当然,您不会通过对keybd_event的配对调用来丢弃您的代码.但相反,你会将配对的调用包装成一个辅助函数.

在某些情况下,您可能需要指定第二个参数,即扫描代码.但通常没有必要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读