我想用msghook动态监测某一window上是否出现某些字样,是的话就对window发送如F1,A,B等的键盘指令,请教如何编程?
解决方案 »
- VB编译出的EXE文件名字中含有右括号就无法连接数据库?
- itgrid6表格控件有导出到电子表格功能吗?
- 作品发布:一个桌面工具,这次的毕业设计,大家评评~~
- 如何取得显示器在某一分辨率下的最大刷新频率?
- 【CSDN】【MSFlexGrid讨论】
- 怎样动态添加用户控件,而且可以添加多个相同的用户控件
- treeview,listview 的问题?
- 關于activereport報表的橫向豎向問題
- 哪个控件能够存储
- 1500分寻求测试
- 我想用msghook动态监测某一window上是否出现某些字样,是的话就对window发送如F1,A,B等的键盘指令,请教如何编程?
- API-->GetFileSize 得到文件大小.
SENDKEYS就可以吧
SendKeys "A"
Private Const WM_CHAR = &H102
Private Const VK_RETURN = &HD
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Sub Command1_Click()
SendMessage Text1.hwnd, WM_CHAR, Asc("a"), ByVal 0&
End Sub
使用keybd_event的例子:
Const VK_H = 72
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Sub Form_KeyPress(KeyAscii As Integer)
'Print the key on the form
Me.Print Chr$(KeyAscii);
End Sub
Private Sub Form_Paint()
'Clear the form
Me.Cls
keybd_event VK_H, 0, 0, 0 ' press H
keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0 ' release H
keybd_event VK_E, 0, 0, 0 ' press E
keybd_event VK_E, 0, KEYEVENTF_KEYUP, 0 ' release E
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_L, 0, 0, 0 ' press L
keybd_event VK_L, 0, KEYEVENTF_KEYUP, 0 ' release L
keybd_event VK_O, 0, 0, 0 ' press O
keybd_event VK_O, 0, KEYEVENTF_KEYUP, 0 ' release O
End Sub
(1)Const WM_CHAR = &H102
Const VK_RETURN = &HD
Const VK_H = 72
Const VK_E = 69
Const VK_L = 76
Const VK_O = 79---分别是什么意思?为什么要这样定义?
(2)这三句话:
SendMessage Text1.hwnd, WM_CHAR, Asc("a"), ByVal 0&
keybd_event VK_H, 0, 0, 0 ' press H
keybd_event VK_H, 0, KEYEVENTF_KEYUP, 0 ' release H
--各个参数分别是什么意思?这句话是什么意思?
请教请教!
另外我用msghook,
WinText = "client"
Handle = FindWindow(vbNullString, WinText)Msghook1.HwndHook = Handle
的时候,运行时益出,请教原因,要怎么编?
将msghook1绑顶到form1上Handle = FindWindow(vbNullString, WinText)??
这个应该是空的然后在拦截消息