例如我打开3个计算器。
想通过枚举三个计算器的句柄。然后获得每个计算器里加号按键的句柄。
然后给三个计算器发送信息。
第一个计算器一直按1+1
第二个计算器一直按2+2
第三个计算器一直按3+3
直到计算器里的数字大于100为止。请求具体思路,如果有类似源码就再好不过了。
想通过枚举三个计算器的句柄。然后获得每个计算器里加号按键的句柄。
然后给三个计算器发送信息。
第一个计算器一直按1+1
第二个计算器一直按2+2
第三个计算器一直按3+3
直到计算器里的数字大于100为止。请求具体思路,如果有类似源码就再好不过了。
解决方案 »
- VB 使用winsock编程,连接过多不释放的问题
- 谁有Maxcode.ocx及CASMUI.DLL的使用介绍资料?
- 百思不得其解,GetForm出现“DLL调用约定错误”
- 如何判断控件是否已经注册,如果未注册,用什么代码注册比较好?
- 如何实现无需SMTP的邮件发送功能,就是利用DNS!
- asp从数据库调用图片代码
- 急求!vb做的俄罗斯方块源代码
- 用VB画电力系统图,但得先在界面上做些元件图,大哥们帮忙
- 双击窗体VB停止工作,form.log显示缺少控件加载!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 请问播放WAV文件那种方法最好?
- 如何将数据库中存储的带变量公式(即字符串)转化为VB程序中的数学表达式
- vb Stream 实时错误 '3004' 写入文件失败
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As LongPrivate Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPrivate Const WM_GETTEXT = &HD
Private Function Getsum() As Long
Dim tempstr As String, strlong As Long, rtn As Long
Dim winHwnd As Long
Dim RetVal As Long
winHwnd = FindWindow(vbNullString, "计算器")
If winHwnd <> 0 Then
winHwnd1& = FindWindowEx(winHwnd&, 0&, "Edit", vbNullString)
tempstr = Space(200)
strlong = Len(tempstr)
rtn = SendMessage(winHwnd1, WM_GETTEXT, strlong + 1, tempstr)
tempstr = Trim(tempstr)
Getsum = tempstr
Else
MsgBox "计算器程序没有运行?"
End If
End Function
Private Sub Form_Load()
Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1) ' 运行计算器
AppActivate ReturnValue ' 激活计算器
Do While Getsum < 101 ' 设置
SendKeys 1 & "{+}", True ' 按下按键给计算器
Debug.Print Getsum
Loop ' 将所有 I 值相加
ReturnValue = Shell("CALC.EXE", 1)
AppActivate ReturnValue
Do While Getsum < 101
SendKeys 2 & "{+}", True
Debug.Print Getsum
Loop
ReturnValue = Shell("CALC.EXE", 1)
AppActivate ReturnValue
Do While Getsum < 101
SendKeys 3 & "{+}", True
Debug.Print Getsum
LoopEnd Sub
测试了您的代码,果然是高手。如果我只是能用鼠标操作。
我已经获得了主窗体的句柄。主窗体内有10个按钮控件(无标题)。怎么获得某个指定按钮的句柄呢。
模拟按钮点击是用SendMessage向其父窗口发WM_COMMAND消息,wParam参数的低16位给按钮ID,高16位给BN_CLICKED,lParam参数给按钮句柄(程序一般忽略)。