如何 运行 在隐藏模式下启动脚本

How to run a script on startup in hidden mode

我有一个名为prova.bat的批处理文件,我需要在计算机启动时启动它,并且我需要以隐藏模式启动它(没有可见提示)。

我在网上找到了在启动时启动批处理的解决方案或以隐藏模式启动批处理的解决方案,但没有解决这两个问题的解决方案。我尝试使用 VBScript 并在启动时(在 SystemConfiguration 中)将脚本设置为 运行。

批次必须 运行 的 OS 是 Windows 8.1.

VBScript 的内容如下(可能有问题):

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\app\app\prova.bat" & Chr(34), 0
Set WshShell = Nothing

最简单的方法是使用启动文件夹 - %appdata%\Microsoft\Windows\Start Menu\Programs\Startup。您可以在 hidden/background mode.Probably 中选择一种启动批次的方法 mode.Probably 最佳选择是 win32process它提供了很多 options.So 只需将脚本放在启动文件夹中,脚本如下:

@call  "c:\tools\win32process.bat" "C:\signcatcher\signcatcher\prova.bat" -showWindows 0 -directory "C:\signcatcher\signcatcher"

您必须将实际路径更改为 win32process.bat

这个 Vbscript 可以做到这一点 (在 Windows 7 32 位上测试)

希望对你有用 Windows 8 ;)

因此代码非常易于使用:您只需更改两处即可:

  • PathApplication

  • 快捷方式名称


Option Explicit
Dim PathApplication,ShortcutName,VbsPath
VbsPath = Wscript.ScriptFullName
PathApplication = "C:\signcatcher\signcatcher\prova.bat"
ShortcutName = "Hackoo"
Call Shortcut(VbsPath,ShortcutName)
Call Hidden_Run(Dblquote(PathApplication))
'*********************************************************************************
Sub Shortcut(PathApplication,ShortcutName)
    Dim objShell,StartFolder,objShortCut,MyTab
    Set objShell = CreateObject("WScript.Shell")
    MyTab = Split(PathApplication,"\")
    If ShortcutName = "" Then
        ShortcutName = MyTab(UBound(MyTab))
    End if
    StartFolder = objShell.SpecialFolders("Startup")
    Set objShortCut = objShell.CreateShortcut(StartFolder & "\" & ShortcutName & ".lnk")
    objShortCut.TargetPath = Dblquote(PathApplication)
    ObjShortCut.IconLocation = "%SystemRoot%\system32\SHELL32.dll,-25"
    objShortCut.Save
End Sub
'*********************************************************************************
Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function
'*********************************************************************************
Function Hidden_Run(MyProgram)
    Dim ws,Result
    Set ws = CreateObject("wscript.Shell")
    Result = ws.run(MyProgram,0,True) '0 to hide the program
    Hidden_Run = Result
End Function
'*********************************************************************************