怎样用SENDMESSAGE发送组合键 例如发送CTRL+A 怎样做!!请教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般不使用SendMessage语句,而使用VB的SendKeys语句发送,详见VB帮助。如果想象特定的程序发送按键,通常在使用SendKeys前调用AppActivate使该程序成为当前活动的程序。 如: AppActivate "My Program" SendKeys "^A" 如果使用SendMessage,可以发送WM_KEYDOWN、WM_CHAR,但这涉及到该软件到底处理哪个消息,如何处理,有时可能不能获得理想效果。如果发送CTRL+B,需要发送两次,一次是发送CTRL,一次是发送A。 面的函数可以利用kb_event实行一些系统操作Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)Private Const VK_LWIN = &H5BPrivate Const KEYEVENTF_KEYUP = &H2Private Const VK_APPS = &H5DPrivate Const VK_PLAY = &HFA Private Sub DoAction(Index As Integer) Dim VK_ACTION As Long Select Case Index Case 0: '打开资源管理器 VK_ACTION = &H45 Case 1: '查找文件 VK_ACTION = &H46 Case 2: '最小化所有窗口 VK_ACTION = &H4D Case 3: '运行程序 VK_ACTION = &H52 Case 4: '弹出Win菜单 VK_ACTION = &H5B Case 5: '将计算机转入睡眠状态 VK_ACTION = &H5E Case 6: '执行Windows帮助 VK_ACTION = &H70 End Select Call keybd_event(VK_LWIN, 0, 0, 0) Call keybd_event(VK_ACTION, 0, 0, 0) Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)End Sub 一般热键(组合键)在程序中都对应一个 wID, 找到后用 SendMessage( hWnd, WM_COMMAND, wID ,0 ) 即可。 大事化小,小事化了 Excel插入图片 怎么让按钮禁用但是按钮上面的字不变灰 请问各位高手:一个关于文本框数据输入的问题 原有个SAMPLE.mdf数据库,内有N多个表,而且都有数据,我想再建个同样的mdf数据库,就是要求名称不一样,请问vb代码如何操作 对SQL SERVER数据库进行存取WORD文档的操作 如何在XP和ME下檢測本機是否上網 如何获得DATAGrid中某条记录的值? 有没有既能编辑文本又能插入对象的控件? VB调用存储过程时报错 一个关于treeview的问题,有一点麻烦。 请问不用控件的话,在VB里如何实现文件下载?
如:
AppActivate "My Program"
SendKeys "^A"
如果使用SendMessage,可以发送WM_KEYDOWN、WM_CHAR,但这涉及到该软件到底处理哪个消息,如何处理,有时可能不能获得理想效果。如果发送CTRL+B,需要发送两次,一次是发送CTRL,一次是发送A。
Private Const VK_LWIN = &H5BPrivate Const KEYEVENTF_KEYUP = &H2Private Const VK_APPS = &H5DPrivate Const VK_PLAY = &HFA
Private Sub DoAction(Index As Integer) Dim VK_ACTION As Long
Select Case Index Case 0: '打开资源管理器 VK_ACTION = &H45 Case 1: '查找文件 VK_ACTION = &H46 Case 2: '最小化所有窗口 VK_ACTION = &H4D Case 3: '运行程序 VK_ACTION = &H52 Case 4: '弹出Win菜单 VK_ACTION = &H5B Case 5: '将计算机转入睡眠状态 VK_ACTION = &H5E Case 6: '执行Windows帮助 VK_ACTION = &H70 End Select
Call keybd_event(VK_LWIN, 0, 0, 0) Call keybd_event(VK_ACTION, 0, 0, 0) Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)End Sub
找到后用 SendMessage( hWnd, WM_COMMAND, wID ,0 ) 即可。