关于另一个非常不同的项目,我正在尝试编写一个VBScript,在执行时将执行以下操作:
我最大的困惑在于步骤" 2"特别是" 4"以上。我知道如何在VBScript中做所有其他事情。有谁能帮助我完成这两个步骤?
最后,我意识到有更多实用的方法来实现这一点,例如AutoHotKey,或者直接用* .txt文件写一些其他语言。请理解上述程序是另一个项目的概念证明,而不是可交付成果。
非常感谢您的回复时间。一个链接(我还没有找到)指定如何做" 2"和" 4"上面也可以。
答案 0 :(得分:0)
在WSH对象中,如果您在该环境中运行vbs(很可能),请使用appactivate
。但隐藏的窗口无法激活......
WSH对象中的sendkeys
再次可以执行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也返回一个代码。如果可以或已激活,则为真。您可以通过禁用对话框标题来使用它来测试对话框。这真的是窗口激活。
答案 1 :(得分:0)
假设您不想通过脚本更改/继续添加到此文本文件,而打开以下内容应该可以正常工作。
Dim objFSO, objFileToWrite, WShell
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set WShell = CreateObject("WScript.Shell")
'Create Text File and write to it then close it
Set objFileToWrite = objFSO.CreateTextFile("C:\Users\***YOUR USER ID HERE***\Desktop\PrototypeText.txt", 1)
objFileToWrite.Write "Hello World"
objFileToWrite.Close
'Open newly created and saved text file
WShell.Run("Notepad.exe C:\Users\***YOUR USER ID HERE***\Desktop\PrototypeText.txt")