JP1/File Transmission Server/FTP(Windows(R)用)
自動起動プログラムの登録の特長を次に示します。
- 伝送の正常終了時,異常終了時に,それぞれ別のプログラムを登録できます。
- 次のどちらかを対象に,プログラムを起動します。
- ファイル名
- 指定したファイルの伝送を契機にプログラムを起動する
- ディレクトリ名
- 指定されたディレクトリにファイルが伝送されたのを契機にプログラムを起動する
- 自動起動プログラムは,登録したユーザに対し,伝送が完了したのを契機にプログラムが実行されます。ユーザに関係なく自動起動をしたいときには,[ユーザ名]に「.default(デフォルトユーザ)」を登録します。
- 自動起動プログラムの登録は,新規に登録する方法と,既存の登録情報をひな形として,登録内容を書き換え,別の登録情報として登録する方法があります。
- [自動起動プログラムの登録一覧]ウィンドウで[登録]−[ファイル対応の情報登録]または[ディレクトリ対応の情報登録]を選択する。または,既存の登録情報を指定し,[登録]−[ファイル対応の情報登録]または[ディレクトリ対応の情報登録]を選択する。
[自動起動プログラムの登録]ダイアログボックスが表示されます。
図3-6 [自動起動プログラムの登録]ダイアログボックス(ファイル対応)
- 各項目を設定し,[登録]をクリックする。
[閉じる]をクリックするまで,続けて複数の自動起動プログラムの登録ができます。
- 登録後,[閉じる]をクリックする。
[自動起動プログラムの登録]ダイアログボックスの各設定項目を次の表に示します。
表3-4 [自動起動プログラムの登録]ダイアログボックスの設定項目
項目 設定内容 ユーザ名
((一覧に表示されるユーザ))自動起動プログラムを登録するユーザ名を指定します。この項目は省略できません。
登録できるユーザは,ドロップダウンリストの一覧に表示される次のユーザです。
- JP1/FTPのログインユーザに登録されているユーザ
- 「.default」(デフォルトユーザ):ログインユーザに登録されているすべてのユーザ
個々のユーザに該当する登録情報がないときは,デフォルトユーザの登録情報を参照し,該当する項目があれば,プログラムを自動起動する。
- [ユーザ名]にすでに特定のユーザ名が指定されている場合
- [表示]−[指定ユーザの情報]で,ユーザが指定されている場合,特定のユーザ名が表示されます。[表示]−[全てのユーザの情報]を選択してください。
ファイル名/ディレクトリ名
((1〜259バイトの文字列))自動起動の対象になるファイル名,またはディレクトリ名を指定します。この項目は省略できません。
ファイル名を指定する場合は,フルパスまたはファイル名だけを指定します。ディレクトリ名を指定する場合は,フルパスで指定します。ディレクトリ区切り文字には「\」を使用してください。正常時に起動するプログラム名
異常時に起動するプログラム名
((2〜259バイトの文字列))伝送の正常終了時,または異常終了時に起動するプログラムを指定します。
起動するプログラム名は,フルパスで指定します。プログラムの起動時に,伝送情報を引数として渡せます。詳しくは,「(1) 引数キーワード」を参照してください。なお,引数キーワードを変換後,文字列が2,048バイト以上になる場合,指定した自動起動プログラムの起動に失敗します。
- プログラム名にスペースが含まれる場合
- 指定するプログラム名にスペースが含まれる場合は,プログラム名を引用符(")で囲んでください。
- 例:自動起動プログラム名にc:\aaa△bbb\ccc△ddd.exeを指定する場合
- "c:\aaa△bbb\ccc△ddd.exe" (△:半角スペース)
- ただし,バッチファイルを指定する場合は,プログラム名と引数の両方を引用符で囲むと,引数が正しく渡されません。
- 起動プログラムに設定するプログラムについての注意事項
- 起動プログラムは,JP1/File Transmission Server/FTP Serverサービスから起動します。そのため,次の点に注意してください。
- JP1/File Transmission Server/FTP Serverサービスを起動したアカウント(ユーザ)の権限の範囲で実行できるプログラムを指定してください。
- ユーザのログオンセッションとは独立したサービスのセッションで実行しているため,ユーザのログオンセッションでレジストリなどに設定した情報は,読み込めないことがあります。
- 画面を持つプログラムを指定する場合は,JP1/FTPサービスの[プロパティ]ダイアログボックス([ログオン]タブ)で「デスクトップとの対話をサービスに許可」を指定します(Windows Server 2003の場合)。ただし,Windowsの仕様に従って動作するため,確認してから使用してください。
- プログラム起動時の優先順位について
- 自動起動プログラムが複数登録されている場合,起動条件となる情報(ファイル名,ディレクトリ名)は同じで,起動するプログラムが異なるということがあります。その場合,次のような優先順位で検索し,最初の条件にあったプログラムだけを起動します。優先順位を次の図に示します。
図3-7 自動起動プログラム起動時の優先順位
- 複数ファイル伝送時のプログラム起動方法
- ワイルドカードを使用した複数ファイル伝送を行った場合,ファイル伝送の数だけ自動起動プログラムが起動します。自動起動プログラムに引き継ぐ情報は,1伝送毎の情報だけです。すべての伝送情報を一度に自動起動プログラムへ引き継ぐ事はできません。
- <この項の構成>
- (1) 引数キーワード
自動起動プログラムに,引数キーワードを指定して,ユーザプログラムに全伝送終了情報を渡せます。また,キーワードを指定することで,個別の伝送終了情報を渡すこともできます。キーワードの一覧を次の表に示します。
表3-5 引数キーワード一覧
引数キーワード キーワード出力内容 クライアント(発信) サーバ(着信) ALL 以下の項目をすべて出力 ○ ○ TRNO 伝送番号 ○ ○ TCNO 接続番号 ○ ○ CARD カード名 ○ − HOST 接続先ホスト名称またはIPアドレス ○ − 接続クライアントIPアドレス − ○ PORT 接続先ホストポート番号 ○ − USER ログインユーザ名 ○ ○ TRTP 伝送モード[ascii=1,binary=2] ○ ○ TRCM 伝送コマンド[send=1,recv=2,append=3] ○ ○ COMP 圧縮モード[stream=1,comp=2] ○ ○ LCFN ローカルファイル名 ○ ○ RMFN リモートファイル名 ○ − STTM 伝送開始時間(time( )の戻り値) ○ ○ SPTM 伝送終了時間(time( )の戻り値) ○ ○ TRSZ 伝送データサイズ(バイト) ○ ○ CMNT コメント ○ − TRST 伝送終了状態[成功=1,失敗=2] ○ ○ ERKD エラー種別[システムコールエラー=1,論理エラー=2,プロトコルエラー=3] ○ ○ SYCN システムコール名称 ○ ○ SYKD システムコール種別[Win32 API=1,C runtime=2, Winsock API=3] ○ ○ ERNO エラー番号 ○ ○ PLMG プロトコルメッセージ ○ −
- (凡例)
- ○:有効
- −:無効
- キーワードの指定について
- 上記表以外のものを指定した場合,または無効なキーを指定した場合は,指定したキーワードがユーザプログラムに直接渡されます。
- 自動起動プログラムに渡す引数情報にスペースが含まれる場合,引数を指定するときに,キーワードを引用符(")で囲む必要があります。
例:"ALL"- また,キーワードを引用符で囲んだ場合,引数の渡され方がexeファイルとbatファイルで次のように異なります。
例:A.exe "PLMG" aargv[1]=aaa bbb 例:A.bat "PLMG" a%1="aaa bbb"
- 引数指定例
- 引数を指定した例を次に示します。
- 全伝送終了情報
C:¥USERS¥keiri¥PROC ALL
- 個別の伝送終了情報
C:¥USERS¥keiri¥PROC1 TRNO USER TRCM STTM SPTM C:¥USERS¥keiri¥PROC2 "PLMG"
- 実行時のコマンドライン
- 例1:キーワードの指定(引用符なし)
- 指定
C:¥USERS¥keiri¥PROC1 TRNO USER TRCM STTM SPTM
- 実行コマンドライン
C:¥USERS¥keiri¥PROC1 12 keiri 1 12:45:35 12:45:45 (伝送の接続番号が12,ログインユーザ名がkeiri,伝送コマンドがsend(1),伝送開始時間が12:45:35,伝送終了時間が12:45:45の場合)
- 例2:キーワードの指定(引用符あり)
- 指定
C:¥USERS¥WAKA¥PROC2 "PLMG"
- 実行コマンドライン
C:¥USERS¥WAKA¥PROC2 "550 D:\temp\test.dat:The system cannot find the path specified." (プロトコルメッセージが550,D:\temp\test.dat:The system cannot find the path specified.の場合)- ユーザは終了プロシジャ内でGetCommandLine関数を使用して,コマンドラインの全文字列を取得できます。また,ユーザプログラムがCランタイムプロセスであれば,argc/argvのメカニズムを利用できます。
All Rights Reserved. Copyright (C) 2009, Hitachi, Ltd.