我有一個程序,希望它開機自動啟動且最小化運行,但這個程序沒有提供設置開機啟動的功能。如果把它的快捷方式加入到“啟動”文件夾中,對開機速度會有比較大的影響,且啟動后不會自行最小化。
為達到這個目的,我想編寫一小段vbs腳本,開機時運行腳本,由腳本來實現延時一段時間后以最小化窗口的方式啟動指定程序的功能。查了一下資料,發現只需使用WScript.Shell.Run和WScript.Sleep即可實現。
WScript.Shell是WSH提供的一個工具對象,可用來與特殊文件夾交互,如Desktop和My Documents,還允許你運行程序,管理快捷方式,以及查看PATH這樣的環境變量,操作注冊表等。Run是WScript.Shell的一個方法。
Run(strCommand, [intWindowStyle], [bWaitOnReturn]) 在一個單獨的窗口中運行一個程序。這里有三個參數: strCommand 要運行的命令:該字符串應該列出它所需的程序以及任何參數的名稱 intWindowStyle 要創建的窗口的大小。若這個值為1,正常地打開窗口;3,最大化地打開窗口;7最小化地打開窗口(作為一個圖標) bWaitOnReturn 一個布爾值。True,腳本等待直到程序終止並返回其錯誤狀態,作為從Run返回的值。False,或忽略了這個值,程序啟動后腳本繼續運行,並且Run方法返回0。
給WScript.Sleep一個整數參數time,可使腳本等待一段時間,time的單位是毫秒。
以下是實現這一功能的腳本。把這段腳本放到windows的“啟動”文件夾內即可。
'15s后啟動program.exe set ws = wscript.createobject("wscript.shell") programPath = chr(34) & "D:\Program Files (x86)\program\program.exe" & chr(34) Wscript.sleep 15000 ws.run programPath, 7
需要注意的是,程序路徑中包含空格,為此,必須在路徑字符串前后都加上chr(34)。
另外,不使用函數的返回值時,函數只能作為子例程來調用(不能用括號把參數括起來)。