我正在使用Excel VBA中的.SendKeys()
向外部窗口发送击键,我正在使用外壳.AppActive
方法激活该窗口。问题是SendKeys
的行为不一致,有时发送密钥,有时不发送。我认为这与根据MSDN文档将键存储在缓冲区中有关。
如何解决这个问题呢?
发布于 2014-01-10 22:43:48
你可以考虑使用Autoit,它比SendKeys更可靠。
从下面的链接http://www.autoitscript.com/site/autoit/downloads/下载Autoit
Add in reference autoit Add in AutoItX3 1.0类型库
下面是打开计算器并输入123456789的示例代码
Sub sendkeys()
'Open a calc
StartCalculator
Dim au As New AutoItX3Lib.AutoItX3
au.AutoItSetOption "WinTitleMatchMode", 2
au.WinActivate "Calculator"
'send key strokes
au.ControlClick "Calculator", "", "Button5"
au.ControlClick "Calculator", "", "Button11"
au.ControlClick "Calculator", "", "Button16"
au.ControlClick "Calculator", "", "Button4"
au.ControlClick "Calculator", "", "Button10"
au.ControlClick "Calculator", "", "Button15"
au.ControlClick "Calculator", "", "Button3"
au.ControlClick "Calculator", "", "Button9"
au.ControlClick "Calculator", "", "Button14"
End Sub
Sub StartCalculator()
Dim Program As String
Dim TaskID As Double
On Error Resume Next
Program = "calc.exe"
TaskID = Shell(Program, 1)
If Err <> 0 Then
MsgBox "Can't start " & Program
End If
End Sub
https://stackoverflow.com/questions/21039489
复制相似问题