Private Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As LongPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const WM_CLOSE = &H10 private sub command1_click() dim aHwnd as long shell "路径\XXX.exe" '打开程序 aHwnd=GetForegroundWindow'得到程序窗口句柄 call SendMessage(aHwnd,WM_CLOSE ,0,0)'关闭程序 end sub
SendKeys "这是一个测试" & vbCrLf & "稍后将保存到C:\test.txt"
SendKeys "%F" '打开菜单
SendKeys "{DOWN 3}~" '打开另存为对话框
SendKeys "C:\test.txt~" '保存文件
SendKeys "%FX" '关闭记事本
比如我打开一个应用程序,该应用程序里面有两个文本框和一个按钮,我是想通过我的代码分别在那两个文本框里面填上文本,然后去点击那个按钮,也就相当于自动登录
text1.text = "1111"
txtx2.text = "2222"
Command1_Click
End SubPrivate Sub Command1_Click()
unload me
End Sub
如果应用程序是exe文件,而且知道文件路径
1:shell "路径\XXX.exe" 打开应用程序
2:用GetForegroundWindow 获得应用程序窗口的句柄
3:用FindWindow和FindWindowEx找出那两个文本框的句柄
4:用SendMessage向那两个文本框填写文本
5:还是用SendMessage关闭应用程序
无非也就
sendkeys "用户"
sendkeys "{tab}"
sendkeys "密码"
sendkeys "{tab}"
sendkeys "{enter}"
之类的,根据不同的程序稍微改变一下操作步骤就行了仔细看看sendkeys的说明我给你的例子连菜单操作、对话框操作、快捷键操作都已经包含了的。除非那个程序不支持tab在各个控件中切换。如果是这样就只能用API了。首先需要获得你想要操作的窗体的句柄,然后枚举窗体中的子窗体,从这些子窗体中找到你说的那两个文本框句柄,发消息填充字符串,最后给确认按钮发消息,还要关闭窗体。复杂着哩
Private Const WM_CLOSE = &H10
private sub command1_click()
dim aHwnd as long
shell "路径\XXX.exe" '打开程序
aHwnd=GetForegroundWindow'得到程序窗口句柄
call SendMessage(aHwnd,WM_CLOSE ,0,0)'关闭程序
end sub
再 findwindoweEx 找到 要输入文本的textbox 窗口
再用 setwindowText 设置文本