我按照指南创建了一个批处理文件,这样我就可以将程序的启动延迟几秒钟。(我不想使用第三方工具)
问题是,在启动该程序之前,我不想在 X 秒内看到该 cmd 窗口。有什么想法吗?
这是我在 .bat 文件中使用的代码:
@ECHO OFF
TIMEOUT /t 3 > nul
START "" "C:\program.exe"
答案1
这个 Visual Basic 脚本可以做 3 件事。
~ 获取存储的当前目录.VBS
并获取文件名。
~ 使用管理员权限运行给定的文件。(不提示 UAC)
~ 静默运行文件,无需您提到的 CMD。
bElevate = False
if WScript.Arguments.Count > 0 Then If WScript.Arguments(WScript.Arguments.Count-1) <> "|" then bElevate = True
if bElevate Or WScript.Arguments.Count = 0 Then ElevateUAC
REM run the following script with admin privilages. start point.
Set fso = CreateObject("Scripting.FileSystemObject")
GetTheParent = fso.GetParentFolderName(Wscript.ScriptFullName)
Set WshShell = WScript.CreateObject ("WScript.Shell")
WshShell.Run GetTheParent & ("\CUSTOMNAMEOFBAT.bat")
WScript.Sleep 500
REM the above script will be run with admin privilages. end point.
Sub ElevateUAC
sParms = " |"
If WScript.Arguments.Count > 0 Then
For i = WScript.Arguments.Count-1 To 0 Step -1
sParms = " " & WScript.Arguments(i) & sParms
Next
End If
Set oShell = CreateObject("Shell.Application")
oShell.ShellExecute "wscript.exe", WScript.ScriptFullName & sParms, , "runas", 1
WScript.Quit
End Sub
复制/粘贴以下代码并另存为.VBS
。将 .vbs
脚本放在与您的 相同的目录中.bat
,并将“CUSTOMNAMEOFBAT”(第 11 行末尾)更改为您的.bat
.