结合另一个非常不同的项目,我正在尝试编写一个 VBScript,它在执行时将执行以下操作:
我最大的困惑在于上面的步骤“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/