我有一個需要在32位運行的vbs文件,即使我正在運行Windows 7 64位。我可以用命令cscript.exe打開一個窗口
C:\Windows\SysWOW64\cscript.exe my-file.vbs
推出這個文件,並且工作得很好,但它給我留下了,我必須手動關閉每次重複命令提示符窗口。將這個vbs文件作爲啓動項目運行也非常麻煩。
有沒有辦法在後臺啓動我的32位vbs文件?
我有一個需要在32位運行的vbs文件,即使我正在運行Windows 7 64位。我可以用命令cscript.exe打開一個窗口
C:\Windows\SysWOW64\cscript.exe my-file.vbs
推出這個文件,並且工作得很好,但它給我留下了,我必須手動關閉每次重複命令提示符窗口。將這個vbs文件作爲啓動項目運行也非常麻煩。
有沒有辦法在後臺啓動我的32位vbs文件?
嘗試此64位的問題,如果你的作品CA n,其中其他答案
編輯結合起來:在這裏,去更深入的32/64位問題
How do I check if wscript/cscript runs on x64 host 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..")
如果你可以使用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")
最簡單的方法
如果需要CSCRIPT這用的是恕我直言,一個很酷的解決方案
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
這是要走的路,雖然我不得不把檢查倒過來...... :-) – koenig
你的意思是你用「如果不是Instr」..?然後我可以調整我的答案.. 不能自己測試它,沒有64位客戶端 – peter
不,我檢查InStr中的「system32」(這是64位,去圖),如果是的話,調用CreateObject與「SysWOW64 「而不是」系統性「。它現在可以在64位版本上運行,因爲腳本按照您的建議在32位中重新啓動;剩下的就是使它通用,以便相同的腳本可以在32位和64位上運行並啓動正確版本的wscript。 – koenig