在Delphi如何实现模拟组合按键,如发送Ctrl_F的按键消息


本文整理自网络,侵删。

 利用 keybd_event函数可实现,如下面的代码用以实现在一个公共菜单中模拟Ctrl_F按钮以调用DBGridEH的查找对话框功能:
这是在一个ActionList中的某一Action的OnExecute事件代码。
view plaincopy to clipboardprint?
procedure TDM.act_LocateExecute(Sender: TObject);
var
myPopupMenu:TPopupMenu;
MyDBGridEH:TDBGridEh;
begin
//ShowMessage(TMenuItem(TAction(Sender).ActionComponent).GetParentComponent.Name);
if (TAction(Sender).ActionComponent).GetParentComponent is TPopupMenu then
myPopupMenu := (TAction(Sender).ActionComponent).GetParentComponent as TPopupMenu
else
Exit;

//ShowMessage(MyPopupMenu.PopupComponent.Name);
if (MyPopupMenu.PopupComponent is TDBGridEh) then
begin
MyDBGridEH := TDBGridEh(MyPopupMenu.PopupComponent);
MyDBGridEH.SetFocus;
keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), 0, 0); //按下Ctrl键
keybd_event(ord('F'), MapVirtualKey(ord('F'), 0), 0, 0); //按下F键
keybd_event(ord('F'), MapVirtualKey(ord('F'), 0), KEYEVENTF_KEYUP, 0); //放开F键
keybd_event(VK_Control, MapVirtualKey(VK_Control, 0), KEYEVENTF_KEYUP, 0); //放开Ctrl键
end;
end;

相关阅读 >>

Delphi 利用http的post方法做个在线翻译的小工

Delphi 新版 thttpclient组件同步下载文件方法

Delphi twebbrowser 获取cookie

Delphi 分享三个随机字符串

Delphi colorbox不需要系统那么多颜色,只想自定义显示其中几个,怎么做?

Delphi求解一元二次方程

Delphi 调用js解决全角转半角

Delphi 截取某个字符之前的字段

Delphi exe执行程序dos参数的运用

Delphi图像二值化

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...