VBScript-使用inputbox后重新激活上一个窗口
对于我的工作,我经常需要在应用程序中输入标准文本,以显示已采取的操作。 在以前的一份工作中,我一直在使用一个VBScript,我发现它工作得非常好。它所做的是打开一个输入框,输入一个数字,然后脚本运行相应的子例程,输入您请求的文本。 在下面,您可以找到它如何工作的示例脚本。 过去我在Windows XP中使用过它,它工作得非常好:VBScript-使用inputbox后重新激活上一个窗口,vbscript,Vbscript,对于我的工作,我经常需要在应用程序中输入标准文本,以显示已采取的操作。 在以前的一份工作中,我一直在使用一个VBScript,我发现它工作得非常好。它所做的是打开一个输入框,输入一个数字,然后脚本运行相应的子例程,输入您请求的文本。 在下面,您可以找到它如何工作的示例脚本。 过去我在Windows XP中使用过它,它工作得非常好: 我在我的应用程序中,准备输入文本 我使用快捷键启动VBScript,比如CTRL-ALT-T 输入框打开 我输入一个数字 输入框关闭,Windows XP自动返回到
- 我在我的应用程序中,准备输入文本
- 我使用快捷键启动VBScript,比如CTRL-ALT-T
- 输入框打开
- 我输入一个数字
- 输入框关闭,Windows XP自动返回到我的应用程序
- 正在将文本放入应用程序中
'-----------------------------
'VBScript for inputting text
'-----------------------------
Option Explicit
Dim oFS, oWS, oWN, Shell
Set oWS = WScript.CreateObject("WScript.Shell")
Set oWN = WScript.CreateObject("WScript.Network")
Set oFS = WScript.CreateObject("Scripting.FileSystemObject")
Set Shell = CreateObject("WScript.Shell")
'-------
' Menu
'-------
Select Case InputBox ( _
"Enter type of comment, then press enter or click Ok..." & vbCrlf & vbCrlf & _
" [1] Text 1" & vbCrlf & _
" [2] Text 2", _
"Menu")
Case "1"
Call sub1()
Case "2"
Call sub2()
Case Else
WScript.Echo "You entered an invalid menu choice!"
End Select
Call CleanUp
'------------
' Subroutines
'------------
'------------------
Sub CleanUp()
Set oWS = Nothing
Set oWN = Nothing
Set oFS = Nothing
WScript.Quit
End Sub
'------------------
Sub sub1()
WScript.Sleep 500
Shell.SendKeys "Standard text 1{ENTER}"
End Sub
'------------------
Sub sub2()
WScript.Sleep 500
Shell.SendKeys "Standard text 2{ENTER}"
End Sub
我找到了一个简单的解决方案,我已经用了几天了,没有任何问题。我在每个子项的开头添加了以下代码:
Shell.SendKeys("%{ESC}")
您可以(在显示输入框之前)与(在显示输入框之后)结合使用上面提到的解决方案之一,即创建COM,不幸的是,这不是我的选项。使用窗口名称重新激活它的另一个选项也是不可能的,因为我有几个窗口的名称完全相同。