【问题标题】:How to run a script on startup in hidden mode如何以隐藏模式在启动时运行脚本
【发布时间】:2015-06-16 23:30:58
【问题描述】:

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

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

批处理必须运行的操作系统是 Windows 8.1。

这是 VBScript 的内容(可能有问题):

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

【问题讨论】:

  • windos 8* 上的启动文件夹位于%appdata%\Microsoft\Windows\Start Menu\Programs\Startup
  • VBScript 应该做你想做的事,所以你的问题很可能与你如何配置它的自动启动有关。你在哪里“在系统配置中”将它配置为“在启动时运行”(启动什么?)?
  • 你的意思是“启动时”还是“登录时”?
  • 检查thisthis

标签: batch-file vbscript windows-8.1 startup


【解决方案1】:

这个 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
'*********************************************************************************

【讨论】:

  • 嗨!谢谢你的回答,我已经做了一个快捷方式并将它放在启动文件夹中,即使这个vbscript我也必须放在那个文件夹中?或者我必须放入另一个文件夹(我问题中的 vbscript 很短,我已将其放入系统寄存器中)
  • @Luca89 您是否尝试过下面的这个 vbscript?因为我让它很容易使用只需更改批处理的路径和(快捷方式的名称是可选的),vbscript 可以完成其余的工作
  • 我尝试手动运行 vbscript 并启动我的 java 应用程序。我需要应用程序在计算机启动时启动,我必须将vbscript放在windows 8.1的启动文件夹中?
  • 我在下面说过,这个 vbscript 可以创建一个快捷方式,并且可以启动你的 java 应用程序,如果你修改这一行的话:PathApplication = "C:\signcatcher\signcatcher\prova.bat" 通过你的路径java应用程序,所以你不需要手动做!​​span>
  • 有没有办法在管理员模式下启动这个脚本?就像在调用 Hidden_​​Run 或其他东西之前检查/修改用户一样?
【解决方案2】:

最简单的方法是使用启动文件夹 - %appdata%\Microsoft\Windows\Start Menu\Programs\Startup。您可以选择一种方法以隐藏/后台模式启动批处理。可能最好的选择是 win32process,因为它提供了很多选项。所以只需输入启动文件夹中的脚本 脚本如下:

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

您必须在哪里更改 win32process.bat 的实际路径

【讨论】:

  • 嗨!谢谢你的回答,我在电脑上试过这个解决方案bat没有win32process.bat(或者我找不到它)
  • @Luca89 - 你需要从链接下载它。
猜你喜欢
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-26
  • 2017-07-21
相关资源
最近更新 更多