当前位置:编程学习 > VB >>

模拟按键有问题,求助!

实验环境:
1.windows 自带计算器
2.VB 6.0

问题1:PostMessage模拟鼠标按键没反应。
问题2:PostMessage模拟键盘输入,在一次KEYDOWN + KEYUP ,计算器上会出现2个字母或数字。

我是用windows自带的计算器测试的:
'hwd为计算器窗口句柄
Dim buttonhwd As Long
buttonhwd = FindWindowEx(hwd, 0, vbNullString, "1") '查找计算器1按钮的句柄
Dim x     As Long
Dim y     As Long
Dim parentRect As RECT
Dim childRect As RECT

GetWindowRect hwd, parentRect
GetWindowRect buttonhwd, childRect

x = (childRect.Left + childRect.Right - 2 * parentRect.Left) / 2
y = (childRect.Top + childRect.Bottom - 2 * parentRect.Top) / 2
SendClick buttonhwd, x, y   '执行到这里可以确定x,y的坐标是正确的了

'发送1的按键信息,测试成功,但是按一次键(也就是KEYDOWN+KEYUP),计算器上会出现2个1
PostMessage(cwd, WM_KEYDOWN, 49, 0)
PostMessage(cwd, WM_KEYUP, 49, 0)



'发送按键信息发送成功,但计算器没有响应


'发送鼠标单击事件
Public Sub SendClick(hwd As Long, x As Long, y As Long)
Dim I As Long
Dim lParam As Long
lParam = y * 65535 + x + y
I = PostMessage(hwd, WM_LBUTTONDOWN, 0, lParam)
I = PostMessage(hwd, WM_LBUTTONUP, 0, lParam)
End Sub --------------------编程问答-------------------- 汗 高手呢?自己顶
补充:VB ,  API
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,