Top / Prog / VBScript / スタートアップの遅延起動

はじめに

OSの起動と同時にアプリケーションを起動したい場合は、「スタートアップ」に登録しておくと便利ですが、少し古いPCだと、ログオン中にまだHDDアクセスが続いているときに、スタートアップのアプリケーションが実行されるため、起動が遅く感じてしまいます。
ここでは、VBScriptを使って、アプリケーションの起動開始をわざと遅くするツールを作成しました。

ソースコード

Option Explicit
'On Error Goto Next

'---------------------------------------------------------------------
' 遅延起動ツール
' by myasu
'---------------------------------------------------------------------

'ref: http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/wshshell.htm


'---------------------------------------------------------------------
'変数の宣言
Dim objWSH
Dim ary_strCommand
Dim iDelay_Init
Dim iDelay_Next
Dim buf_strCommand


'---------------------------------------------------------------------
'各種設定変数

'起動したいアプリケーションの一覧(フルパスで記述)
ary_strCommand = Array(_
	"C:\Program Files\Mozilla Firefox\firefox.exe",_
	"C:\Program Files\Mozilla Thunderbird\thunderbird.exe",_
	"C:\Program Files\Mame5\Mame5.exe")


'起動開始するまでの待機時間(ms)
iDelay_Init = 20000

'次を起動するまでの待機時間(ms)
iDelay_Next = 5000


'---------------------------------------------------------------------
'メイン

'オブジェクトの確保
Set objWSH = Wscript.CreateObject("Wscript.Shell")

'起動開始まで待機
Wscript.Sleep iDelay_Init

'配列からコマンドを一つずつ取り出す
For Each buf_strCommand In ary_strCommand
	
'	WScript.Echo buf_strCommand
	
	'起動
	objWSH.Run Chr(34) & buf_strCommand & Chr(34), 1 , false
	
	'次を起動するまで待機
	Wscript.Sleep iDelay_Next
Next

説明

動き

ary_strCommandに列挙したコマンドを、iDelay_Initミリ秒分待ってから起動します。
その際に、コマンドの実行は同時に行わず、iDelay_Nextミリ秒分待ってから順次起動します。

Run関数について

  1. 第一引数
    Run関数の引数に対し、"Chr(34)"で囲んでいるのは、buf_strCommandにスペースを含むコマンドがあった場合、引数エラーになるのを防ぐためです。
  2. 第二引数
    動作
    0非表示
    1通常サイズ(省略時)
    2最小化
    3最大化
    4通常サイズ,フォーカス無し
    6最小化,フォーカス無し
  3. 第三引数
    動作
    trueアプリケーションの終了を待ってから次の行を実行
    falseアプリケーションの終了を待たず次の行を実行

参考


Prog


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-09-14 (日) 09:00:10 (3116d)