Windows開機循序執行程式的方法

by 12月 03, 20230 Comments

問題

電腦送電開機後,有些程式需等SQL資料庫啟動、有些程式需等待外部設備就緒(例如USB I/O模組之類的)才能執行,開機後程式需循序執行,但程式開機同時啟動,有時候程式執行順序錯誤,需要重新開啟。

解決方法1

撰寫批次檔放在啟動資料夾,每次開機自動執行批次檔,利用批次檔循序確認前一個程式已執行,才開啟下一個程式。

撰寫批次檔

在記事本輸入以下程式碼,並儲存為bat檔,例如:autorun.bat。

此程式首先等待WWW服務啟動(原本是用來確認IIS是否啟動),啟動完成後再啟動小算盤,小算盤啟動後再開啟IE。
可依您需求自行修改,REM是註解;注意等待服務和等待程式的指令不同,不要搞錯了喔!有問題可留言詢問~

@ECHO OFF
REM 名稱:循序啟動程式
REM 功能:等待WWW服務啟動後,再開啟小算盤(calc.exe),小算盤開啟後,再開啟IE(iexplore.exe)
REM 備註:注意!!!檔名不得有空格

REM 等待WWW服務啟動(每5秒確認)
:_WAIT1
SET p1="World Wide Web Publishing Service"
CLS
ECHO Wait for %p1% to start.
FOR /F "tokens=3 delims=: " %%i IN ('sc query "%p1%" ^| findstr "STATE"') DO (SET d=%%i)
TIMEOUT /T 5 /NOBREAK
IF NOT "%d%" == "RUNNING" GOTO _WAIT1

REM 開啟小算盤
start /d "C:\Windows\System32" calc.exe

REM 等待小算盤啟動(每5秒確認)
:_WAIT2
SET p1="calc.exe"
CLS
ECHO Wait for %p1% to start.
FOR /F %%i IN ('tasklist /FI "IMAGENAME EQ %p1%" /NH') DO SET d=%%i
TIMEOUT /T 5 /NOBREAK
IF NOT "%d%" == %p1% GOTO _WAIT2

REM 開啟IE(全螢幕, 參數-K)
start /d "C:\Program Files\Internet Explorer" iexplore.exe -k

將批次檔放入啟動資料夾

將剛剛撰寫的批次檔放入啟動資料夾,Windows啟動資料夾分為系統和使用者的資料夾,若放入系統啟動資料夾,每個使用者登入系統都會執行裡面的程式,而使用者資料夾是只有該使用者登入系統才會執行。
開啟啟動資料夾方法如下。

開啟系統啟動資料夾

  1. win key+R
  2. 輸入「shell:Common Startup」
  3. 點擊確定按鈕

開啟目前使用者的啟動資料夾

  1. win key+R
  2. 輸入「shell:Startup」
  3. 點擊確定按鈕

解決方法2

每個程式利用工作排程器設定不同的延遲啟動,方法可參考這篇,步驟很麻煩,不是很建議...

0留言

<