windows启动时自动运行程序四种方法(登录或不登录都可以的)

四种方法,1 脚本运行,2定时任务,3WINDOWS服务,4 注册表

第一种:需要登录才能运行


    第一步:编写运行jar包的bat文件
新建一个run.txt文件,将以下内容放进去,然后修改文件后缀为.bat

@echo off
 
java -jar C:\Users\Administrator\Desktop\test-0.0.1-SNAPSHOT.jar > C:\Users\Administrator\Desktop\test.log
 
pause
解释:@echo off 执行该命令后,后面所有的命令行都不会显示出来(但是程序的打印输出会显示)

           > 将jar包控制台的输出输出到一个文件中(可以不输出到文件中,因为文件可能会特别大)

          pause 当执行到该命令时,会暂停命令行的执行,并打印显示"请输入任意键继续..."的字符。可能是因为springBoot启动时需要打印一堆东西的缘故,可能会额外弹出一个窗口显示"请输入任意键继续..."的字符。然后你按任意键继续即可,只要打印输出的窗口不关,额外弹出的窗口关闭也没事,就相当于一个启动完成的标志吧。   

PS:如果想要在一个bat文件中运行多个jar包,要这样使用

@echo off
 
start cmd /c "java -jar d:\test.jar"
start cmd /c "java -jar d:\test2.jar" 
 
pause
解释: start 表示要执行一个命令或一个可执行的文件等。

启动多个可执行文件:https://blog.csdn.net/qq_24489717/article/details/60957981

这样每执行一个start cmd /c 命令就会弹出一个命令行窗口,所以要想办法隐藏掉。因为有一个控制台打印的进程一直开着,所以关闭是关闭不掉的。

第二步:编写vb脚本隐藏命令行窗口
因为若只执行第一步的话,启动后会弹出一个或多个命令行窗口,当窗口关闭时,项目也停止了,所以编写一个vb脚本隐藏命令行窗口,操作步骤:新建一个txt文件,将以下内容copy进去,修改文件后缀为vbs即可。内容如下

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c d:\run.bat",vbhide
作用就是去执行第一步的bat文件。

检查有没有启动成功:   netstat -ano | findstr 端口号

强制关闭进程:              taskkill -f -pid 进程id   

第三步:设置开机运行该脚本
找到这个位置

C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

或者这个位置

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

将第二步的vbs文件放进去就行了。

(注意,AppData和ProgramData是两个隐藏文件,需要在查看中勾选隐藏的项目这个选项。以上两个目录都是windows的开机自启目录,区别就是第一个只是属于当前登录用户的,第二个是属于所有用户的。

如果设置了开机密码,则必须是输入密码后才会去执行vb脚本,注意!

第二种:不需要登录也可运行程序的方法


     方式一::利用组策略开机启动项目


利用windows自带的搜索工具,搜索"组策略",打开以下页面

双击启动,在启动中添加vb脚本,即可实现不用登陆,也能开机启动程序。个人电脑大部分都有这个组策略,但像windowsServer这样的服务器就没有这个(MD,亲身体验过...),但我们可以使用以下方式。

方式二:利用计划任务实现开机启动
       

      在任务创建的最后输入用户名和密码即可。

      图中的test任务为我刚刚测试的任务,这是他的一些属性。


test任务属性图​​​​​


方式三:注册成windows服务,并设置启动方式为开机自启动

这个可以做成WINDOWS服务程序 ,注册到系统就可以了
         利用windows的sc(service create)命令。之后重启服务器即可看到启动成功

sc create 服务名 binPath=C:\Users\admin\Desktop\run.bat start= auto
        查看是否启动成功

        在cmd中输入services.msc ,查看是否有该服务

   启动,关闭,删除该服务

net start 服务名
net stop 服务名
sc delete 服务名


       方式四:修改注册表

         注册表里有个START 添加子键就可以了。

 
附:windows 2008开机密码实现自动登陆的方法

在运行框中键入“Rundll32 netplwiz.dll,UsersRunDll”打开用户账户界面,将“要使用本机,用户必须输入用户名和密码”前面的勾去掉,按”确定“然后输入你的用户密码就可以了。

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是 Windows 自动启动程序代码的示例: 1. 在注册表中添加启动项 在注册表中添加启动项是一种常见的方法,可以让程序Windows 启动时自动运行。以下是一个示例代码: ```c #include <Windows.h> int main() { HKEY hKey; DWORD dwDisposition; // 打开注册表项 RegCreateKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", , NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition); // 设置键值 RegSetValueEx(hKey, "MyProgram", , REG_SZ, (BYTE*)"C:\\MyProgram.exe", strlen("C:\\MyProgram.exe")); // 关闭注册表项 RegCloseKey(hKey); return ; } ``` 2. 在启动文件夹中添加快捷方式 另一种常见的方法是在启动文件夹中添加快捷方式,以下是一个示例代码: ```c #include <Windows.h> #include <ShlObj.h> int main() { TCHAR szPath[MAX_PATH]; // 获取启动文件夹路径 if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_STARTUP, NULL, , szPath))) { // 创建快捷方式 TCHAR szShortcutPath[MAX_PATH]; PathCombine(szShortcutPath, szPath, "MyProgram.lnk"); CoInitialize(NULL); IShellLink* pShellLink; HRESULT hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&pShellLink); if (SUCCEEDED(hr)) { pShellLink->SetPath("C:\\MyProgram.exe"); IPersistFile* pPersistFile; hr = pShellLink->QueryInterface(IID_IPersistFile, (LPVOID*)&pPersistFile); if (SUCCEEDED(hr)) { pPersistFile->Save(szShortcutPath, TRUE); pPersistFile->Release(); } pShellLink->Release(); } CoUninitialize(); } return ; } ``` 希望这些代码能够帮助你实现 Windows 自动启动程序的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值