1

Windows 7 64 ビットを実行していますが、32 ビットで実行する必要がある vbs ファイルがあります。コマンドでこのファイルを起動できます

C:\Windows\SysWOW64\cscript.exe my-file.vbs

それは正常に機能しますが、毎回手動で閉じる必要がある冗長なコマンド プロンプト ウィンドウが残ります。また、この vbs ファイルをスタートアップ アイテムとして実行するのも非常に面倒です。

バックグラウンドで 32 ビットの vbs ファイルを開始する方法はありますか?

4

3 に答える 3

3

64ビットの問題に対してこれを試してください。それが機能する場合は、他の回答と組み合わせることができます

編集:ここでは、32/64ビットの問題についてさらに詳しく説明します。

wscript / cscriptがx64ホストOSで実行されているかどうかを確認するにはどうすればよいですか?

ここで変更されたバージョンは、スクリプトが64ビットプラットフォームで実行されることを確認する必要があります

On Error Resume Next
Dim WshShell, OsType
Set WshShell = CreateObject("WScript.Shell")
OsType = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE")
If OsType = "x86" then
  wscript.echo "Windows 32bit system detected"
else
  wscript.echo "Windows 64bit system detected"
  If InStr(LCase(WScript.FullName),"system32") Then 
    CreateObject("WScript.Shell").Run """%systemroot%\SysWOW64\wscript.exe"" """ & WScript.ScriptFullName & """" 
    Wscript.Quit 
  End If 
end if

Msgbox("I ran..")
于 2012-05-23T11:24:49.990 に答える
1

cscriptを使用する必要がある場合、これはIMHOのクールなソリューションです

Const HIDDEN_WINDOW = 0

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = HIDDEN_WINDOW

Set objProcess = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")

objProcess.Create "Cscript.exe h:\Script\Test1.vbs", null, objConfig, intProcessID
于 2012-05-23T10:47:21.117 に答える
0

wscript を使用できる場合は、次のことができます。これが最も簡単な方法です。

Set objShell = CreateObject("Wscript.Shell")
objShell.Run "Wscript.exe h:\Script\Test1.vbs"

実際には、ワンライナーで実行できます (私は Ruby マニアです 8>)。

CreateObject("Wscript.Shell").Run("Wscript.exe h:\Script\Test1.vbs")
于 2012-05-23T10:42:44.410 に答える