【★★★★★ Launcher2005 Ver1.4 マニュアル ★★★★★】 【★はじめに】  Launcher.exeは簡単なバッチ処理が可能なプログラムランチャーです。 【★注意】 ★本プログラムの使用に当たっては、作者は一切の責任を負いません。 【★旧バージョンから上書きする際の注意】 【注意】これらの設定はデフォルトでmyscript.iniに保存されます。 +launcher.ini Launcherのバージョンアップで上書きする可能性がありますので,かならず バックアップをとっておいてください。 【★インストール】  インストールはLauncher.exeと*.iniファイルをを同じ フォルダーにいれるだけです。その後で、以下の設定をしてください。 (1) 新しいスクリプトファイルを追加したり、あるいは削除する場合は、右ボタンメニューの    「スクリプトファイルの編集」でできます。このメニューによる変更は、直接Launcherに    反映されます。 もっとLauncherを使いこなそうという人は、以下の★Launcher.iniファイルの他の構成★を 読んで、自分の好きなようにボタンに機能を割り当ててください。 【★Launcher.iniの[Script]セクション】  *このセクションは、右ボタンメニューの「スクリプトファイルの編集」で変更できます。  Launcherでは、iniファイルにスクリプトを記述して実行させますが、このスクリプトを 複数のiniファイルに分けることが出来ます。  Launcher.iniに、 [Script] UserScipt1=myscript.ini UserScipt2=b.ini UserScipt3=Launcher.ini と書けば、myscript.ini, b.ini, Launcher.iniの順に、[DBLClick.xxxxx]を検索し、 xxxxxxをメニューとしてリストボックスに表示します。これは、Launcher.iniには Launcherのドキュメントやシステム関連のスクリプトを登録してユーザーが 触らないようにして、ユーザー固有のメニューはmyscript.iniや他のScriptファイルに 入れて頂きたいと考えての仕様です。このようにすると、Launcherのバージョンアップの 時にも、myscript.iniなどを上書きしないようにすれば、ユーザー設定は変更せずに Launcher.iniの内容だけがバージョンアップされます。  ここで、[Script]に'\'を含まないファイル名を指定した時は、Launcher.ini (あるいは-iオプションで指定したiniファイル)と同じディレクトリィにあることを 仮定します。  次節では、UserScript?に挙げられた全てのファイルをまとめて、iniファイルと 呼びます。前述のように、Launcher.iniは、Launcherのバージョンアップによって変更 されることが考えられますので、ユーザー固有のスクリプトは、myscript.iniに書かれる ことをお薦めします。 【★*.iniファイルの他の構成】  iniファイルの他の構成は、見た目よりも単純です。  Launcherを起動すると、左上にメニューのListBoxが表示されます。 Launcherは起動時に、iniファイルの、[DBLClick.xxxxx]というセクションを検索し、 xxxxxをリストボックスに表示します。  Launcherのウィンドウ画面では、下半分に15このボタンがあります。このボタンは、 左上から右上まで、Button1...Button3、左下から右下までButton13...Button15という 名前がついています。  リストボックスで、たとえばRietanが選択されている場合、Button1をクリックすると、 *.iniの[Button1.Rietan]セクションの内容が実行されます。同様に、 Button4をクリックすると、[Button4.Rietan]が実行されます。  また、リストボックス中のRietanをダブルクリックすると、[DBLClick.Rietan]が 実行されますし、リストボックスのExplorerを選択して、Button3をクリックすると、 [Button3.Explorer]が実行されます。  [DragDrop.Rietan]は、Rietanを選択中にLauncherウィンドウに ファイルをDrag&Dropした時に、D&Dしたファイル名をFileエディトコントロールに表示した後、 実行されます。D&Dしたファイル名は$oで受け取れます。ここで、Button3の上にファイルを Drag&Dropすると、[DragDrop3.Rietan]が同様に実行されます。  [Boot]セクションは特別で、Launcherが起動された直後に実行されます。 (このセクションは通常、myscript.iniに書かれています。他のiniファイルに書くことも  できますが、この場合は、[Script]セクションに記述されたiniファイル中の[Boot]  セクションが順番に実行されます) デフォルトでは、setコマンドを使って、プログラムのパスを環境変数に セットしています。この環境変数は、[Button1.Rietan]セクションなどで、 $(edtr)などとして参照されています。  [EditIniFile]は、右ボタンメニューの「Iniファイルの編集」で実行されます。 以下のスクリプトで、allaunch.iniを引数にしてinieditを起動します。 GetAppFile iniedt *.exe システム編集用のエディターを指定してください $(iniedt) $i  [ProgButtonEdit]はプログラムボタンあるいはリストボックス上で右ボタンを クリックすると実行されます。環境変数alfnameには、メニューあるいはスクリプトの 書かれているファイル名、alsectにはセクション名が入ります。以下のスクリプトで、 inieditにファイル名とセクション名を与えて起動してます。 GetAppFile iniedt *.exe システム編集用のエディターを指定してください $(iniedt) $(alfname) -s[$(alsect)]  [Exit]セクションは、LauncherのExitボタンを押した時に実行されます。 通常はこの中にByeコマンドのみが設定されていますが、Byeを削れば、 ExitボタンではLauncherは終了できなくなります。  [Editor]セクションは、LauncherのEditorボタンを押した時に実行されます。  [Shell]セクションは、LauncherのShellボタンを押した時に実行されます。  [Explorer]セクションは、LauncherのExplorerボタンを押した時に実行されます。  [Launcher]セクションは、LauncherのLボタンを押した時に実行されます。 この4つのセクションの初期状態では、作業フォルダーを$(CurDir)にうつしてから、それぞれ $(edtr), cmd.exe, explorer.exe, $p (Launcher.exe自身)を実行するように設定されています。 $(CurDir)には、Launcher.exeが起動したときに、起動ディレクトリが設定されるようになっています。 適宜$(CurDir)の設定を変えることで、現在作業を行っているディレクトリィでこれらの コマンドを実行できます。  この4つのセクションには、Drag&Dropに対応するセクションが存在します。    例:[DragDropEditor] etc. 各セクションの書式は次の通りです。 [DBLClick.Rietan] Caption=Editor ;ボタンのキャプションの設定 $(edtr) $a ;コマンドスクリプト ..... ; ....... Bye ; ....... End ;コマンドスクリプトの終了 Captionには、ボタンに表示させる文字列を指定します。また、 Caption=&Editor と&を挿入すると、ショートカットキーALT+Eが割り当てられます。 コマンドスクリプトには、任意のコマンドを書けますが、上の例では、[Boot]セクションで edtr環境変数に設定したエディターを、Rietanから渡された全ての引数($a)を 引数にして起動しています。Byeは、$(edtr)を起動したら、Launcherを終了させる という命令です。最後のEndが無いと、次のセクションを継続して実行します。スクリプトを 終了する時には、必ずEndをつけてください。  これらのコマンド中では、Caption=がボタンに表示するキャプション名を指定し、 Endでコマンド処理を終える以外は、次節のコマンドが使えるようになっています。  これらのセクションのうち、最低限必要なのは[DBLClick.xxxxx]だけです。 これがないと、ListBoxに何も表示されません。他は無ければ、無視されるだけです。 ボタンを押してもなにも動作させたくなければ、例えば [DBLClick.Explorer] Caption=No action End とだけ書けば良いでしょう。 【★セクション中で使えるコマンド】 【 ●DOS互換コマンド】 chdir, cd directory DOSのchdirと同じです。ただし、directoryにドライブ名が与えられたら、 ドライブの移動も行います。 mkdir, md directory DOSのmkdirと同じです。ですから、2つ以上のディレクトリィを 同時に作成する事はできません。 Copy source destination DOSのcopyと同じです。ただし、source, destinationには 1つのファイルしか指定できませんし、ワイルドカードも使えません。 また、タイムスタンプなどは保存されません。     コピーに失敗すると、LauncherError環境変数にエラーメッセージを設定し、 スクリプトを中断します。 CopyIfExist source destination sourceが存在するときにのみ、Copy source destinationを実行します。 CopyIfNotExist source destination destinationが存在しないときにのみ、Copy source destinationを実行します。 delete, del file DOSのdelと同じです。ただし、fileには1つのファイルしか指定できませんし、 ワイルドカードも使えません。 【 ●変数関連コマンド】 Set Env=Value DOSのsetと同じです。この効果はLauncher.exeを終了するまで、Launcher.exeから 起動したプログラムのみに有効です。 AddPath newpath $(path)にnewpathが存在しないときのみ、 set path=newpath;$(path) を実行します。 ReadIni Ini_FileName Section Key Env_String iniファイルIniFileName中のSectionセクションのKeyキーの値を読み込み、 環境変数Env_Stringに代入します。 WriteIni Ini_FileName Section Key String iniファイルIniFileName中のSectionセクションのKeyキーに Stringを書き込みます。 Input Env_Var Message インプットダイアログを表示して、環境変数Env_Varにその内容を設定します。 インプットダイアログにはMessageが表示されます。 また、Env_Varが既に存在する時は、インプットダイアログ表示時に、Env_Varの 内容が表示されます。これを防ぐには、Inputの前に、set Env_Var=を実行して 下さい。 DelQuote Env_Var String Stringの両端のクォーテーション(",')を削除します。 GetHeader FileName HeaderName Len Env_String FileNameというメールファイル中の、HeaderNameというヘッダーの内容を、最大Len文字数まで、 環境変数Env_Stringに設定する。HeaderNameは例えば、"From:"、"Subject:"など。最後の':'は なくても良い。Lenは1-128の値で、これを外れる時は128に設定される。 【 ●Launcherシステム関連コマンド】 LoadMenu iniファイルを読み込みなおし、リストボックスのメニュー、ボタンを 最新のものに更新します。 UpdateCaption Captionに$(Env_String)などを使った場合、環境変数の変更をボタンの キャプションに反映させる。 SetTitle Title_String LauncherのウィンドウキャプションをTitle_Stringに変更する。 ShowMessage message Launcherメッセージテキストボックスにmessageを表示する。 ShowWindow [Minimize/Maximize/Normal/Hide/TopMost/NoTopMost] Launcherの表示状態を制御する。 [Minimize/...../NoTopMost]については、●ウィンドウ関連コマンドを参照。 ClearErrorMessage LauncherError環境変数に空白文字列""を代入します。 OnError Command エラーが起こったとき、Commandを実行します。 Commandには continue 何もせず、スクリプトの実行を続けます stop スクリプトを停止します。 他のコマンド を指定できます。 【 ●ウィンドウ関連コマンド】 ShowWindow [Minimize/Maximize/Normal/Hide/TopMost/NoTopMost] [Window Class] [Window Class]のクラス名をもつウィンドウの表示状態を制御する。 [Window Class]が省略された場合、Launcherのウィンドウに対して処理が 行われる。 [Minimize/...../NoTopMost]については、以下を参照。 ShowWindow Minimize Launcherをアイコン化する。 ShowWindow Maximize Launcherを最大化する。 ShowWindow Normal Launcherのウィンドウを元のサイズに復帰する。 ShowWindow Hide Launcherのウィンドウを不可視にします。スクリプト終了時には、 自動的にShowWindow Normalが実行されます。 ShowWindow TopMost Launcherのウィンドウを再前面に固定する。 ShowWindow NoTopMost ShowWindow TopMostを無効にします。 【 ●スクリプト制御関係コマンド】 End スクリプトの最後であることを示す。行頭からEndとかく必要がある。 Exit スクリプトを中断する。 Call Section [Section]セクションのスクリプトを実行する。実行が終わると、 次の行のスクリプトに実行を移す。例えば、[Button1.Rietan]を 実行する時は、 Call Button1.Rietan と書く。 gosub Section [Section]セクションのスクリプトを実行する。実行が終わると、 次の行のスクリプトに実行を移す。例えば、[Button1.Rietan]を 実行する時は、 gosub [Button1.Rietan] と書く。 goto Section [Section]セクションのスクリプトに実行を移す。実行が終わると、 スクリプトを終了する。例えば、[Button1.Rietan]を 実行する時は、 goto [Button1.Rietan] と書く。 Debug [1|on|0|off] デバッグモードを設定します Confirm on これ以後にプログラムを実行する時、コマンドラインを編集するダイアログを 表示します。 Confirm off Confirm onを無効にします(デフォルト) ExitIfDefined ENV ENV環境変数が定義されている場合はバッチ処理を中止する。 ExitIfNotDefined ENV ENV環境変数が定義されていない場合はバッチ処理を中止する。 ExitIfExist file fileが存在する時はバッチ処理を中止する。 ExitIfNotExist file fileが存在しない時はバッチ処理を中止する。 IfExist file Script fileが存在するときはScriptを実行する IfNotExist file Script fileが存在しないときはScriptを実行する IfFileExist file Script fileがファイルとして存在するときはScriptを実行する IfNotFileExist file Script fileがファイルとして存在しなときはScriptを実行する IfDirectoryExist dir Script dirがディレクトリィとして存在するときはScriptを実行する IfNotDirectoryExist dir Script dirがディレクトリィとして存在しないときはScriptを実行する IfWindows Script OSがWindowsの場合、Scriptを実行する IfLinux Script OSがLinuxの場合、Scriptを実行する Bye Launcherを終了します。 Rem Comment ;Comment #Comment コメント行 Message message_string message_stringをMessageBoxダイアログで表示します。ユーザーはOKボタンを押して 応答します。  OKボタンとCancelボタンが表示されますが、Cancelを押すとスクリプトを 中断します。 【 ●ファイル名操作関連コマンド】 GetOpenFileName File_Mask InitialDirectory Caption GetOpenDOSFileName File_Mask InitialDirectory Caption GetSaveFileName File_Mask InitialDirectory Caption GetSaveDOSFileName File_Mask InitialDirectory Caption コモンダイアログのFile Openを起動しファイル名を取得します。 (GetOpenDOSFileNameでは、DOSの8.3形式のファイル名になります) File_Maskにはワイルドカードを""で囲んで指定します。 File_Maskを指定しないと、"*.*"になります。 InitialDirectoryには、OpenDialogの初期ディレクトリィを指定します。 Captionは、オープンダイアログのキャプションです。 File_Mask、InitialDirectory、Captionは省略可能です。 このコマンドで取得したファイル名は、$oで参照できます。 また、LauncherウィンドウのFileエディットコントロール中に表示されます。 GetOpenDirectory InitialDirectory Caption GetDOSOpenDirectory InitialDirectory Caption コモンダイアログのFile Openを起動しディレクトリィ名を取得します。 (GetDOSOpenDirectoryでは、DOSの8.3形式の ディレクトリィ名になります) InitialDirectoryには、OpenDialogの初期ディレクトリィを指定します。 Captionは、オープンダイアログのキャプションです。 InitialDirectory、Captionは省略可能です。 このコマンドで取得したディレクトリィ名は、$oで参照できます。 また、LauncherウィンドウのFileエディットコントロール中に表示されます。 GetShortPathName Env_String Long_File_Name Long_File_Nameのファイル名を、DOSの8.3形式のファイルにし、 環境変数Env_Stringに設定する。 GetDrive FileName Env_String ドライブ名 (c:) GetDirectoryWithDrive FileName Env_String ドライブ名 (c:) GetDirectory FileName Env_String ディレクトリィ名 (\win3\system) GetLastDirectory FileName Env_String 最後のディレクトリィ名 (system) GetFileName FileName Env_String ファイル名 (b.bat) GetExt FileName Env_String 拡張子 (bat) GetFileBody FileName Env_String 拡張子以外のファイル名 (b) GetCurDir Env_String カレントディレクトリィを環境変数Env_Stringに設定する。 SetFile String Fileエディットボックスに文字列Stringをセットする。 SetArgs String Argsエディットボックスに文字列Stringをセットする。 DtoUnixPath FileName Env_String FileName中の'\'を全て'/'に置き換えて、環境変数Env_Stringに 設定する。 UtoDOSPath FileName Env_String FileName中の'/'を全て'\'に置き換えて、環境変数Env_Stringに 設定する。 【 ●コマンドスクリプト中の一文字マクロ】 コマンドスクリプト中のファイル名は以下の変数で取得できます。 $p Launcher.exeのフルパス名 $i Launcher.iniのフルパス名 $s Launcher.exeのあるドライブ名を含むディレクトリィ名 $w Windowsのドライブ名を含むディレクトリィ名 $0 - $999 Launcherに与えられた引数を指定。 $0はLauncherのプログラム自身。$1からが、実引数。 $1以降は、Argsエディットコントロールの部分文字列である。 $a $1-$999までの引数を空白で区切って与える。 Argsエディットコントロールの全文字列に等しい。 $e $eがコマンド列中にあると、$eを引数各々に対して$eを置き換え、 引数の数だけコマンドを実行する。例えば、argsに"a b"がある時、 notepad $e とすると、notepad a と notepad b を実行する。 $eは一つのコンマンド中に一つしか書かないでください。 $(env_var) 環境変数 env_var の内容を展開する。 $o Fileエディットコントロールの全文字列。 Fileエディットコントロールには、GetOpenFileNameコマンドを 使って取得したファイル名が入る。 ファイル名ではありませんが、 $n 改行。メッセージなどを複数行にする時に使う。 【 ●プロセス関連コマンド】 WaitProcess 直前に実行した外部プログラムが実行中は次の作業に進まない。 Win32sではうまく機能しません。 これら以外のコマンドはすべてCreateProcess APIに渡されます。つまり、実行可能プログラムと その引数とみなされます。  また、リダイレクションやフィルターを使うプログラムでは、バッチファイルを 作って使うか、"cmd /K "program.exe < input.txt > output.txt"と、 /Cか/Kオプションをつけて、シェルcmd.exeに実行するコマンドを渡してください。 リダイレクション、フィルターはcmd.exe(シェル)の機能ですから、 Launcher.exeに直接渡してもリダイレクション、フィルターは使えません 【 ●高度なコマンド】  ここに示すコマンドは、主にLauncherのインストール、システム設定のために用意されています。 普通にLauncherを使う上で必要になることはほとんど無いと思います。  コマンドの意味を良く理解した上でお使いください。 GetAppFile Env_String FileMask Message GetAppDOSFile Env_String FileMask Message  iniファイルの[Helper]セクションの、Env_String=の内容を環境変数Env_Stringに設定する。 (GetAppDOSFileではDOSの8.3形式の名前になります)  Env_String=キーがない場合は、ファイルオープンダイアログをファイルマスクFieMaskで 開いて、設定するプログラムを指定する。指定されたプログラムは環境変数Env_Stringに 設定され、[Helper]セクションのEnv_String=キーに登録される。  また、GetAppDir実行時に、Env_String=キーに指定されたファイルが存在しない場合も、 プログラムを設定しなおす。  ヘルパーアプリを登録するのに使う。例えば、 [Button1.Rietan] Caption=&RieMenu Get riemenu RieMenu.exe RieMenuを指定してください $(riemenu) End とすれば、最初の一回だけRieMenu.exeの位置を指定すれば、二回目からはiniファイルから RieMenu.exeのありかがわかるので、指定する必要が無くなる。 【★コマンドラインオプション】  コマンドラインオプションはかならず、引数の最初の方にセットしてください。 ・-mオプション  例えば、-mRietan とすると、ListBoxでRietanが選択された状態で起動します。 ・-iオプション  例えば、-ic:\Rietan\myconfig.iniとすると、Launcher.iniの変わりに  c:\Rietan\myconfig.iniを読み込みます。 ・-eオプション  Launcher起動後、[Boot]セクションを実行した後に-eオプションで指定された  セクションを実行する。複数指定可。 ・-hオプション  起動時に一瞬ダイアログが見えますが、ダイアログ不可視の状態で起動します。 【★iniファイルのオプション】  [Preferences]セクションの、FloatOnTopを1にすると、Launcherウインドウは 最上位に表示されるようになります。また、FloatOnTopを0にすると、通常の ウィンドウと同じZ Orderで表示されます。同じことは、[Boot]セクションに ShowWindow NoTopMostコマンドを記述することでも可能です。