如何使用VBScript无命令提示符窗口带优先级启动exe程序
问题原因
你当前代码调用了cmd /c嵌套start命令,start默认的窗口创建逻辑会绕过WScript.Shell.Run第二个参数的隐藏配置,所以才会弹出命令提示符窗口。
修复方案1(修改现有代码)
给start命令补充/b参数(作用是启动程序时不创建新的命令窗口),修改后代码如下:
Dim WShell Set WShell = CreateObject("WScript.Shell") WShell.Run "cmd /c Start /b /belowNormal " & "C:\Users\Desktop\sonso.exe -uri www.google.de",0 Set WShell = Nothing
修复方案2(更稳定的无弹窗方案,无需调用cmd)
直接通过WMI创建进程并设置优先级,完全避免命令行窗口弹出的可能,代码如下:
Const BELOW_NORMAL_PRIORITY = 16384 Dim objWMIService, objStartup, objProcess, intProcessID Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") Set objStartup = objWMIService.Get("Win32_ProcessStartup") Set objConfig = objStartup.SpawnInstance_ objConfig.PriorityClass = BELOW_NORMAL_PRIORITY objConfig.ShowWindow = 0 ' 隐藏窗口 Set objProcess = GetObject("winmgmts:Win32_Process") objProcess.Create "C:\Users\Desktop\sonso.exe -uri www.google.de", Null, objConfig, intProcessID
内容的提问来源于stack exchange,提问作者meno
相关产品推荐
相关产品推荐

