在Windows中很多的任務,我們希望能夠在Windows 啟動之后自動運行。
注意本文要講的開機啟動的程序,是在用戶還沒有登錄的情況下實現啟動的。
換句話說,本文描述的開機啟動的程序運行在Session 0中 主要介紹了3中方法, 大家可以選擇合適的方法去實現。
Windows Service
當Windows 啟動的時候,還沒有登錄賬號的時候,此時Windows中設置為auto狀態的Service 將會在Session 0中運行。
可以按照如下步驟去實現Windows Service:
1. 如果還沒有實現過Windows Service 程序的同學,可以參考這篇文章《Simple Windows Service in C++》去實現。
2. 通過命令行創建Service, 主要注意start= auto設置Service為開機啟動。
sc create “SERVICE_NAME” binpath= "SERVICE_PROGRAM" displayname= "SERVICE_DESCRIPTION" start= auto
Windows Startup Script
按照如下步驟:
1. 打開本地的組策略管理,運行命令gpedit
2. 然后依次打開Computer Configuration->Windows Settings->Scripts-> Startup, 在Startup中配置需要開機啟動的腳本或者程序。
在機器中的配置,我們都盡可能的希望自動化,於是希望通過腳本來完成這個動作。
Windows Schedule Task
Windows定時任務管理器,提供了強大的功能:可以定時的執行任務,除了按照時間去觸發定時任務,其還提供了開機啟動觸發程序運行的功能,你可以通過圖形界面的方式配置,也可以通過命令方式:
依次打開Control Panel->Administrative Tools->Task Scheduler,然后再里面新建自己的任務。主要注意以下兩點:
任務運行的賬號選成”System”
觸發器中,選擇At Startup觸發器
使用如下命令行:
schtasks /create /TN "TASK_NAME" /RU SYSTEM /SC ONSTART /TR "TASK_PROGRAM"
任務計划程序圖形化界面:
(其中要運行的腳本frpcstartup.bat內容:D:\FRPC\frpc.exe -c D:\FRPC\frpc.ini)
win搜索任務計划程序
右側有創建任務
各個選項的內容如圖: