作成者カテゴリ 
公開
松葉優
01/24/1999 03:01 AM
エージェント
ノーツサーバノーツクライアントサーバOSクライアントOSネットワークプロトコル
N/AN/AN/AN/AN/A

Notesからファイル名を指定して実行

遅くなりましたが、だいぶ前の、"OSにファイル名を送って実行" が一応完成しました。
それとコメント文を大量に記述してみました。これで、Scriptがわからなくても
大丈夫です。たぶん。エージェントに貼りつければ緑色になるし、見やすいと
思います。
先生方、間違っていたら、ご指摘ください。


Oエージェント1を作ります。
実行時期 : エージェントリストから手動で
実行する文書 : @コマンド使用時に1回実行
スクリプト
に切り替えます。
(Declarations) に
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Declare Function FindExecutable& Lib "shell32" Alias "FindExecutableA" (Byval lpFile As String, _
Byval lpDirectory As String, Byval lpResults As String)

' Windows API (Application Programming Interface) を関数(Function)として
' 宣言(Declaration) しています。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
を記述します。
(Initialize) に
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Dim session As New NotesSession '変数 sessionに新しい Notesセッションを用意して、Script実行環境を設定します。
Dim workspace As New NotesUIWorkspace '変数 workspace に新しく現在のワークスペース環境を設定します。
Dim uidoc As NotesUIDocument '変数 uidoc を ワークスペースで現在開かれている文書 を格納できる変数として宣言します。
Dim file As String '変数 file を 文字を格納する変数として宣言します。
Dim result As String *255 '変数 result を 文字を格納する変数として宣言します。255文字目までで文字列を切ってくれます。

Set uidoc = workspace.CurrentDocument ' uidoc 変数に workspace(現在のワークスペース) の現在の文書をセットします。
file = uidoc.FieldGetText( "path" ) 'file 変数 に uidoc(現在の文書) の path フィールドの 値 を代入します。
Call FindExecutable (file, "", result) ' API の FindExecutable を呼んでいます。
' result 変数に file ( path フィールドの 値 )に関連付けされた
' Applicationの PATH(ファイル名) を入れてくれます。
Call session.SetEnvironmentVar( "ApPath01", Cstr(result) ) ' Notes環境変数にAPPATH01 という行を作って 、
' result (Applicationの PATH)を = に続けて書きこんでくれます。(すでにある場合は上書き) Cstr()は、@Textです。
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
を記述します。(Sub Initialize と End Subの間です。)

Oエージェント2を作ります。
実行時期 : エージェントリストから手動で
実行する文書 : @コマンド使用時に1回実行

に切り替えます。
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ApPath := @Text(@Environment("ApPath01"));
@PostedCommand([Execute];ApPath;path)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Oフォームにpath フィールドを作ります。

Oフォームに
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
filename:=@Prompt([LOCALBROWSE]; "ファイルを選択してください。"; "");
fname:=@If(@Contains(filename;" ");"\""+filename+"\"";filename);
@SetField("path";fname)
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
このようなアクション(もしくはボタン)を作ります。(編集時 以外非表示)

Oもうひとつ、フォームに
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@Command([ToolsRunMacro];"(エージェント1)");
@PostedCommand([ToolsRunMacro];"(エージェント2)")
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
このようなアクション(もしくはボタン)を作ります。

以上の操作で骨組みが出来ます。
あとは、用途に合わせて・・・・。


[Previous Main Document]
Notesからファイル名を指定して実行 (松葉優) * 現在地 *
. . SHELL関数だとだめなのですか? (xxx)
. . . . notesにshell関数?? (足立)
. . . . . . ありますよ! (ゆう)
. . . . . . . . すみません。 (足立)
. . . . *.xls *.doc *.rtf *.html *.jpg *.gif などのファイルのことです。 (松葉優)
. . 実行エージェントを改良しました。 (松葉優)
[Next Main Document]