(for Internet Explorer)
設定を変更するときは、デフォルトの設定が記述されている関数を参考にして、変更する関数
だけを、新しい vbs ファイルに記述し、
vbslib を使ったスクリプトは、スクリプトがテキスト・ファイルを開くために起動するエディターや、
テキストを比較するツールなどを、「C:\Program Files」 フォルダーを調べて自動的に探します。
うまくいかないときは、設定を変更してください。
デフォルトの設定は、
の PC_setting_default.vbs に入っている
に格納してください。
参考
PC_setting_default.vbs
関数定義を参照してください。
フォルダを開くツールの設定
インクルードする外部 .vbs ファイルのパスの配列を返す。
フォルダを開きます。
管理者のユーザ名を返します。
の中の .vbs ファイルに、ユーザーが定義する関数です。
すべてのモジュールをインクルードした後のコールバック。
によって、setting フォルダーに入っている、
の setting_default フォルダの中の全 .vbs ファイル
1.
3.
%APPDATA%\Scripts フォルダの中の全 .vbs ファイル (*2)
環境変数 myhome_mem は、必要に応じて設定してください。
[ スタート | コンピューター ] を右クリック [ プロパティ | 詳細設定 | 環境変数 ]
[ ユーザー環境変数 ] に設定してください。
(*1)
の setting フォルダの中の全 .vbs ファイル
4.
%APPDATA%
Scripts
Xxx_setting.vbs
← 2. PC全体の設定 (*2)
setting フォルダーは、vbslib の設定を記述した vbs ファイルを格納するフォルダーです。
scriptlib\vbslib400\setting フォルダーの中に、スクリプト・ファイルを配置し、関数定義を記述
することで設定を行います。
メイン.vbs
(任意のフォルダ)
setting_default
setting
← 1. デフォルト設定(通常、編集しません)
Xxx_setting_default.vbs
Xxx_setting.vbs
← 4. 上記の(任意のフォルダ)の中の設定
2.
%myhome_mem%\prog\scriptlib\setting_mem フォルダの中の全 .vbs ファイル (*1)
(*2)
コマンドプロンプトを開いて、echo %APPDATA%\Scripts と入力すると、実際の
パスが分かります。
→ [T_Setting] setting フォルダのテスト
%myhome_mem%\prog\scriptlib\setting_mem
Xxx_setting.vbs
← 3. USB メモリに入っている PC全体の設定
環境変数を使用
スクリプトを実行すると、はじめに
すべての vbs ファイルの内容を実行します。 つまり、vbs ファイルの名前は、自由に付ける
ことができます。 この実行によって、関数が定義されます。 setting フォルダーは、複数あり
ますが、下記の 1. 2. 3. 4. の順番で実行します。 同じ関数を他の .vbs ファイルでも定義して
いるときは、後で定義したものが優先されます。 4 の setting フォルダーにある設定が最も
優先されます。
テスト
関連
vbslib400
Windows 7 : C:\Users\user1\AppData\Roaming
Windows XP : C:\Document and Settings\user1\Application Data
2.が設定されていない PC を一時的に使うときのため
vbslib400
Xxx_setting.vbs
setting
← setting フォルダー
← 設定ファイル
Function  Setting_getIncludePathes( IncludeType as string ) as array of string
scriptlib フォルダーの中で、インクルードする .vbs ファイルのパスの配列を返します。
Function  Setting_getIncludePathes( IncludeType )

  Setting_getIncludePathes = Array(_
    "vbslib.vbs", "sample_lib.vbs" )

End Function
(src)
scriptlib フォルダに共通な環境変数の設定も、Setting_getIncludePathes 関数の中で行います。
関連
scriptlib\vbslib400\setting\vbs_inc_setting.vbs
  '--- start of parameters for vbslib include -------------------------------
  g_Vers.Add  "IncludeType", "TypeA"
IncludeType は通常 Empty ですが、下記のように scriptlib ヘッダで、IncludeType 変数の値を
設定すると、IncludeType 引数に値が渡ります。 この値に応じて、インクルードするモジュール
を選択することができます
Function  Setting_getIncludePathes( IncludeType )
  If IncludeType = "TypeA" Then
    Setting_getIncludePathes = Array( "vbslib.vbs", "sample_lib.vbs" )
  End If
End Function
サンプル
参考
パスは、vbs_inc_400.vbs ファイルがあるフォルダからの相対パスです。
vbc_inc_400.vbs ファイルは、指定しなくてもインクルードされます。
コールツリー
vbslib.vbs
sample_lib.vbs
TypeA
TypeA
参考
Sub  Setting_onAfterInclude()
すべてのモジュールをインクルードした後にコールバックされる関数。
あるフォルダの中(scriptlib フォルダごと)にあるすべてのスクリプトの既定の環境変数を
設定することなどを行います。
コールツリー
で返される .vbs ファイルをインクルードした後で行う処理を、
Setting_onAfterInclude 関数に記述してください。 Setting_onAfterInclude 関数の中では、
.vbs ファイルで定義されている関数などを呼び出すことができます。
非推奨
Setting_onAfterInclude を使うと暗黙的に処理が行われるので、推奨されません。
を使って、あるフォルダー(scriptlib フォルダーがある
フォルダーなど)の中にあるすべてのスクリプトに共通の処理を、インクルードして、呼び
出してください。
Sub  main()
  include  SearchParent( "Common.vbs" )
  Common_main
End Sub
メイン.vbs
Common.vbs
Sub  Common_main()  '// Setting_onAfterInclude 関数の代わり
  set_  "VAR", "value"
End Sub
代わりに
参考
Sub  Setting_openFolder( Path )
フォルダーを開きます。
この関数の内容を変えることで、エクスプローラー以外のファイラーを使うことが出来ます。
Path 引数にファイルのパスが渡されたときは、そのファイルを選択状態にしてください。
【引数】
Path
フォルダー、またはファイルのパス
参考
(src)
Function  Setting_getEditorCmdLine( i as integer or string ) as string
テキストエディタを開くコマンドラインを返します。
(src)
【引数】
i
返り値
パス(文字列)、または、コマンドラインの種類(数値)
コマンドライン文字列, i に対応していないときは Empty
テキストエディタのパスのみ返す。 "" で囲まないこと
i=0 のとき
C:\Windows\notepad.exe
返り値の例:
返り値の例:
"C:\Windows\notepad.exe" "%1"
開くパスを %1 にした、テキストエディタを起動するコマンドラインを返す。
i=1 のとき
開くパスを %1、開いた後に検索するキーワードを %2 にした、テキストエディタを
起動するコマンドラインを返す。 %2 に対応できないときは、%1 だけ使ったコマンド
ラインを返します。
"C:\Program Files\search_open\search_open.exe" "%1#%2"
返り値の例:
i=3 のとき
返り値の例:
"C:\Windows\notepad.exe" "%1"
"C:\Windows\notepad.exe" "%1"
返り値の例:
i=2 のとき
返り値の例:
"C:\Program Files\sakura\sakura.exe" -Y=%L "%1"
開くパスを %1、開く行番号を %L にした、テキストエディタを起動するコマンドライン
を返す。 %L に対応できないときは、%1 だけ使ったコマンドラインを返します。
i が文字列のとき
i は、開こうとするテキストファイルの絶対/相対パスと、行番号、または開いた後に
検索するキーワードであるとして、実際に実行するコマンドラインを返します。
上記「使用サンプル」を参照。
i の例:
C:\FolderA\FileA.txt
行番号を含む i の例:
C:\FolderA\FileA.txt(100)
キーワードを含む i の例:
C:\FolderA\FileA.txt#FuncA
参考
使用サンプル
  start  Setting_getEditorCmdLine( "File1.txt" )
  start  Setting_getEditorCmdLine( "File1.txt(100)" )
  start  Setting_getEditorCmdLine( "File1.txt#FuncA" )
(*1)
(*2)
(*1)
最後の文字が ')' のときは、( ) の中が行番号であるとします。
ファイル名に # が含まれるときは、# の後が、開いた後に検索するキー
ワードであるとします。
(*2)
テスト
→ T_Open_1.vbs
関連
参考
のソース
Function  Setting_getDiffCmdLine( i as integer ) as string
テキスト比較(Diff)を実行するコマンドラインのテンプレートを返す。
(src)
【引数】
i
返り値
コマンドラインの種類
コマンドライン文字列
Diff のパスのみ返す。 "" で囲まないこと
i=0 のとき
C:\Program Files\Rekisa\Rekisa.exe
例:
例:
"C:\Program Files\Rekisa\Rekisa.exe" "%1" "%2"
比較する2つのファイルのパスを %1, %2 にした、Diff を起動するコマンド
ラインを返す。
i=2 のとき
比較する3つのファイルのパスを %1, %2, %3 にした、Diff を起動する
コマンドラインを返す。
"C:\Program Files\Rekisa\Rekisa.exe" "%1" "%2" "%3"
例:
i=3 のとき
関連
i=21 のとき
"C:\Program Files\Rekisa\Rekisa.exe" -Y+1=%L
 -ActiveFile="%1" "%1" "%2"
例:
比較する2つのファイルのパスを %1, %2 にして、%1 の行番号を
%L にした、Diff を起動するコマンドラインを返す。
比較する2つのファイルのパスを %1, %2 にして、%2 の行番号を
%L にした、Diff を起動するコマンドラインを返す。
例:
"C:\Program Files\Rekisa\Rekisa.exe" -Y+1=%L
 -ActiveFile="%2" "%1" "%2"
i=22 のとき
"C:\Program Files\Rekisa\Rekisa.exe" -Y+1=%L
 -ActiveFile="%1" "%1" "%2" "%3"
例:
比較する3つのファイルのパスを %1, %2, %3 にして、%1 の行番号を
%L にした、Diff を起動するコマンドラインを返す。
i=31 のとき
比較する3つのファイルのパスを %1, %2, %3 にして、%2 の行番号を
%L にした、Diff を起動するコマンドラインを返す。
例:
"C:\Program Files\Rekisa\Rekisa.exe" -Y+1=%L
 -ActiveFile="%2" "%1" "%2" "%3"
i=32 のとき
"C:\Program Files\Rekisa\Rekisa.exe" -Y+1=%L
 -ActiveFile="%2" "%1" "%2" "%3"
例:
比較する3つのファイルのパスを %1, %2, %3 にして、%3 の行番号を
%L にした、Diff を起動するコマンドラインを返す。
i=33 のとき
"C:\Program Files\WinMerge\WinMergeU.exe" "%1" "%2"
例:
参考
Diffを実行するコマンドラインを返す
%APPDATA%\Scripts\account_setting.vbs
ファイルを新規作成して下記のように記述してください。
Function  Setting_getAdminUserName()
  Setting_getAdminUserName = "Administrator"
End Function
Function  Setting_getAdminUserName() as string
管理者のユーザー名を返します。
Windows XP で自分が管理者であったり、Windows 7 で管理者になれる
ユーザであれば、関数定義の記述は不要です。
参考
管理者のユーザー名は、
= 1 にしたときに使われます。
Sub  Setting_buildTestPrompt( Prompt as TestPrompt )
テスト・プロンプトの設定を行います。
(src)
参考
【引数】
Prompt
設定 (TestPrompt_Setting.vbs のサンプルを参照)
プロンプトのメニュー項目を設定します。
テスト・スクリプト(Test.vbs)を登録します。
Sub  Setting_getTemp( out_FolderPath as string, out_LimitDate as Date )
テンポラリ・ファイルやテンポラリ・フォルダーの設定値を取得します。
【引数】
out_FolderPath
out_LimitDate
(出力) テンポラリ・フォルダのパス
(出力) 保存期限
サンプル:
Sub  Setting_getTemp( out_FolderPath, out_LimitDate )
  out_FolderPath = env( "%Temp%\Report" )
  out_LimitDate = DateAdd( "d", -2, Now() )  '// "d" = day
End Sub
下記は、Setting_getTemp を定義していないときと同じ設定です
テンポラリ・フォルダの設定に関するオブジェクト。
テンポラリ・フォルダに保存するまでは Empty です。
Dim  g_TempFile as TempFileClass
Setting_getTemp は、g_TempFile = Empty のときに呼ばれ、呼び出したら、
g_TempFile.m_FolderPath に out_FolderPath に出力したパスが入ります。
out_FolderPath や out_LimitDate に値を代入しなかったら、デフォルト値が
使われます。
out_LimitDate 引数に出力した日時より前のタイムスタンプを持つファイルは、
GetTempPath で削除されます。 参考
参考
テンポラリ・ファイルのパスを返す
Function  GetExistPathInSetting( Paths as array of string, SettingFuncName as string )
Paths 配列に格納されているパスのうち、最初にファイルが存在するパスを返します。
【引数】
Paths
SettingFuncName
パスの配列
本関数を呼び出している関数の名前
返り値
ファイルが存在するパス
(src)
Paths の要素に Empty を含んでいてもエラーにはなりません。

もし、該当するファイルが存在しなければ、setting フォルダーにある vbs ファイルを修正する
ように、警告が表示されます。
GetExistPathInSetting は、setting フォルダーの中で定義する関数の中から呼び出せる関数です。
サンプル
Function  Setting_getEditorCmdLine( i )

  paths = Array( _
    g_sh.ExpandEnvironmentStrings( "%ProgramFiles%\sakura\sakura.exe" ), _
    g_sh.ExpandEnvironmentStrings( "%windir%\notepad.exe" ) )
  exe = GetExistPathInSetting( paths, "Setting_getEditorCmdLine" )
→ Setting_getEditorCmdLine のサンプル (src)
Sub  EditAndRunScript( ScriptPath as string, IsKeepThisProcessIfRun as boolean )
VBScript ファイルをテキスト・エディターで開いて、編集後に実行します。
【引数】
ScriptPath
IsKeepThisProcessIfRun
VBScript ファイルのパス。 Empty =
False=実行開始したら現在のプロセスを終了する
(src)
サンプル
Sub  EditAndRunThisScript()
    EditAndRunScript  Empty, False
End Sub
本関数を呼び出すと、
VBScript ファイル開きます。
に登録したテキスト・エディターを使って
テキスト・エディターを閉じたら、編集した VBScript ファイルを実行するかどうかを確認する
ウィンドウが開きます。 実行するを選んだら、実行を開始して、IsKeepThisProcessIfRun
= False なら、現在実行中のプロセスは終了します。 つまり、新しい VBScript ファイルの
プロセスに切り替わります。  IsKeepThisProcessIfRun = True なら、実行を開始して、
本関数から戻ります。
実行することをキャンセルすると選んだら、そのまま本関数から戻ります。
→ T_EditAndRunScript フォルダ
テスト
コマンドプロンプト、またはウィンドウにメッセージを表示します。
Enter キーを押すまで待ちます。
プロンプトを表示し、ユーザからのキーボード入力を待ちます。
キーボード入力をエミュレーションします。
他にもあります。左のツリーから選択してください。
音楽ファイルや効果音ファイルを鳴らします。
コントロールパネルに設定されている効果音を鳴らします。
テスト
→ ユーザインターフェースのテスト
に入ります。
Function  echo( Message as variant ) as string
コマンドプロンプト、またはウィンドウにメッセージを表示します。
【引数】
Message
表示する内容、またはオブジェクト
  echo "はろー"
  echo  1+1
サンプル:
Message にオブジェクトを指定した場合、Value プロパティを表示します。
参考
Class  ClassX
  Public Property Get  Value()
関連
返り値
表示した内容(文字列)
(src)
があるときは、出力しません。
サンプル: ファイルとコマンドプロンプトの両方に出力する
  Dim out : Set out = OpenForWrite( "_out.txt", Empty )
  out.WriteLine  echo( "はろー" )
→ T_Var.vbs # T_LoadEnvVars
テスト
で、コマンドプロンプトを表示しているときは、コマンド・
プロンプトの中に、そうではないときは、ウインドウに表示します。
echo は、
を使っているときは、Test_logs.txt ファイルにも出力します。
テスト・プロンプト (Test.vbs)
EchoOff オブジェクトがあるときでも出力したいときは、標準出力してください。
例:echo_r "text", ""
今まで echo した内容をウィンドウで表示します。
echo で出力しないようにします。
標準出力かファイルに、文字列を出力します。
VBScript / WSH の標準的な表示関数。
ファイル:
vbslib.vbs
Message を表示可能な文字列に変換します。
  Set obj = new ClassX
  echo  obj  '// obj.xml プロパティを表示する
サンプル:
はろー
2
実行結果:
  Dim  a
  a = 5
  echo  "a = "& a
a = 5
実行結果:
サンプル:
実行結果:
名前は、太郎です。
  Dim  name
  name = "太郎"
  echo  "名前は、"+ name +"です。"
サンプル:
サンプル:
  Dim  name
  name = input( "あなたの名前は?>" )
  echo  name +"さんですね。"
実行結果:
あなたの名前は >次郎
次郎さんですね。
echo
Sub  echo_flush()
(src)
コマンド・プロンプトを表示していないとき、今まで echo した文字列をウィンドウで表示します。
コマンド・プロンプトを表示しているときは、何もしません。
echo_flush を呼び出さなくても、プログラム終了時、pause、input 時、何度も echo したときは、
ウインドウに自動的に表示します。
参考
コマンドプロンプトを表示するかどうか
  echo  "注意してください。"
  echo_flush
サンプル:
ファイル:
vbslib.vbs