api - 使用VBScript控制记事本

标签 api vbscript automation

结合另一个非常不同的项目,我正在尝试编写一个 VBScript,它在执行时将执行以下操作:

  • 打开记事本实例(作为隐藏或最小化窗口)
  • 聚焦记事本实例
  • 将“Hello world”写入打开的记事本文件
  • 发出适当的 alt+S 等命令,将桌面上的文件另存为“PrototypeText.txt”
  • 关闭记事本。

  • 我最大的困惑在于上面的步骤“2”,尤其是“4”。我知道如何在 VBScript 中做所有其他事情。谁能帮我完成这两个步骤?

    最后,我意识到有更实用的方法可以实现这一点,例如 AutoHotKey,或者直接写入 *.txt 文件,也许是其他语言。请理解以上程序为另一个项目的概念验证 ,本身不是可交付成果。

    非常感谢您花时间回复。指定如何执行上述“2”和“4”的链接(我还没有找到)也可以。

    最佳答案

    在 WSH 对象中,如果您在该环境中运行 vbs(很可能),则使用 appactivate .但是无法激活隐藏的窗口,所以...

    再次sendkeys在 WSH 对象中可以做 4 个(但不能在隐藏窗口中)。

    这是 vbscript 帮助 ( https://msdn.microsoft.com/en-us/library/8c6yea83(v=vs.84).aspx ) 中使用两个命令的示例,并注意使用 sleep 让应用程序有机会处理命令。

         set WshShell = WScript.CreateObject("WScript.Shell")
         WshShell.Run "calc"
         WScript.Sleep 100
         WshShell.AppActivate "Calculator"
         WScript.Sleep 100
         WshShell.SendKeys "1{+}"
         WScript.Sleep 500
         WshShell.SendKeys "2"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 500
         WshShell.SendKeys "*3"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 2500
    

    最小化的窗口可以获得焦点。

    使用这样的字符串来获取桌面。包括引号。 "%userprofile%\desktop\yourfilename.txt" .引号是在有空格的情况下。

    AppActivate 也返回一个代码。如果它可以或被激活,则为真。您可以通过激活对话框标题来使用它来测试对话框。这真的是窗口激活。

    关于api - 使用VBScript控制记事本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34421170/

    相关文章:

    python - 使用 Python 从 json API 响应中提取属性

    android - Zendesk SDK与API

    Java 谷歌地图

    api - Symfony 2 - FOSUserBundle - 如何集成到 API 中

    vbscript - 使用 vbscript 的命令提示符中的多个命令

    xml - 在 VBScript 中为 Dummy 导航 XML 节点

    vbscript - 检查字符串 "starts with"是否是另一个字符串

    android - 如何在android中实现UI自动化?

    excel - VBA 自动执行网页抓取进入单元格

    com - 什么是 "automation-compatible language"?