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

前端之家收集整理的这篇文章主要介绍了使用WinAPI在Delphi中模拟键盘输入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要以编程方式将一个字符输入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的配对调用来丢弃您的代码.但相反,你会将配对的调用包装成一个辅助函数.

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

猜你在找的Delphi相关文章