VBScript - 使用inputbox

时间:2017-01-21 12:23:18

标签: vbscript

对于我的工作,我经常需要在应用程序中输入标准文本以显示已采取的操作。 在以前的工作中,我一直在使用我发现完美的VBScript。它的作用是打开一个输入框,输入一个数字,脚本运行相应的子程序,输入你要求的文本。 您可以在下面找到有关其工作原理的示例脚本。 在过去,我在Windows XP中使用它,它运行得很好:

  • 我正在申请中,准备输入文字。
  • 我使用快捷键启动VBScript,比如说CTRL-ALT-T
  • 输入框打开
  • 我输入一个数字
  • 输入框关闭,Windows XP自动返回我的应用程序
  • 正在将文本放入应用程序

但Windows 7的任务行为略有不同。当窗口在W7中关闭时,前一个窗口出现在屏幕上但未被主动选中。结果,文本没有放在那个窗口中。

有没有办法让窗口被主动选中?

我对VBScript表单中的解决方案感兴趣。但是,如果有人碰巧知道改变Windows 7行为的解决方案,那么它的行为就像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

1 个答案:

答案 0 :(得分:0)

我找到了一个简单的解决方案,我已经使用了几天而没有任何问题。我在每个子开头之后立即添加了以下代码:

GROUP BY nvl(trim(a.code), 'Blanks')