2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« WScript.ShellのExec()でコンソールアプリを非表示で実行する。その2 | トップページ | すべてのウィンドウを元のサイズに戻す。その2 »

2007年5月19日 (土)

CScript.exe強制実行

先の応用で、CScript.exeでしか動かないスクリプトが、
もし、WScript.exeで起動されたら、CScript.exeで起動し直します。

既存のVBSファイルの先頭に以下のコードを組み込むだけです。

Option Explicit

Sub RerunCScript 'ここから
Dim Args
Dim Arg
If LCase(Right(WScript.FullName,11))="wscript.exe" Then
  Args=Array("cmd.exe /k CScript.exe",""""&WScript.ScriptFullName&"""")
  For Each Arg In WScript.Arguments
    ReDim Preserve Args(UBound(Args)+1)
    Args(UBound(Args))=""""&Arg&""""
  Next
  WScript.Quit CreateObject("WScript.Shell").Run(Join(Args),1,True)
End If
End Sub
RerunCScript 'ここまで

'以下は既存コードのサンプル
WScript.StdOut.WriteLine WScript.FullName
WScript.StdOut.WriteLine WScript.ScriptFullName
WScript.StdOut.WriteLine WScript.Arguments.Count
Dim k
For k=1 To WScript.Arguments.Count
  WScript.StdOut.WriteLine WScript.Arguments.Item(k-1)
Next

« WScript.ShellのExec()でコンソールアプリを非表示で実行する。その2 | トップページ | すべてのウィンドウを元のサイズに戻す。その2 »