首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SendKeys并不总是有效的

SendKeys并不总是有效的
EN

Stack Overflow用户
提问于 2014-01-10 16:37:50
回答 2查看 11K关注 0票数 7

我正在使用Excel VBA中的.SendKeys()向外部窗口发送击键,我正在使用外壳.AppActive方法激活该窗口。问题是SendKeys的行为不一致,有时发送密钥,有时不发送。我认为这与根据MSDN文档将键存储在缓冲区中有关。

如何解决这个问题呢?

EN

Stack Overflow用户

发布于 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的示例代码

代码语言:javascript
运行
复制
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

票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21039489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档