みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
こんにちは。Windows ADV12です。
あるファイル aaa.exe があるかどうかを確かめるのにEvent 送信 「avert」;「odoc」;「aaa.exe」
として、最終エラー=100をとれば、あるかどうかはわかるのですが、
aaa.exeを実行したくないのです。
実行せずにエクスプローラーなどで、あるか無いかを判断することは出来ませんか?
よろしくお願いします。
Offline
「Event を送信」は、戻り値の取得ができません。
FileMaker cmd.exe dirコマンドを実行して戻り値を取得。 : http://qbxxdp.blogspot.jp/2017/04/filem … e-dir.html
上記に書いてある方法で
■PowerShell|fmpプロトコル を使用
と
■プラグイン:ScriptMakerPS を使用
の場合、
cmd /c dir \"C:\Windows\" /b /a-d
この部分を
Test-Path 'D:\aaa.exe'
に変更すれば、ファイルの有無を確認出来ます。
外部のプログラムとの連携無しで、ファイルの有無を確認するには、
オブジェクトフィールドを作成し、
スクリプト:ファイルを挿入 で、以下のようにファイルパスを2行設定します。
オブジェクトフィールドのファイル名を取得し、「error.txt」だった場合、
「aaa.exe」が無いと判断出来ます。
「error.txt」は、スクリプト:ファイルを挿入 の前にテンポラリフォルダにエクスポートしておくのが用でしょう。
ファイルを挿入[obj ;
filewin:/D:/aaa.exe
filewin:/D:/!TEMP/error.txt
]
Offline
qb_dp さん、レスありがとうございました。
いろんな手法がありますね。
今回の場合はランタイムでの利用を想定しています。従って、最後の方法を採用したいと思います。
>>ファイルを挿入[obj ;
>>filewin:/D:/aaa.exe
>>filewin:/D:/!TEMP/error.txt
>>]
なるほどねぇー。勉強になりました。
実行前に該当するオブジェクトフィールドに対して フィールド設定 ””
とすることにします。
どうもありがとうございました。
Offline
元々の表題『Event送信でファイルの存在を確認したい』を実現する方法です。(windows版限定ですが)
HTAコマンドスクリプトをEvent送信して、ファイルの有無を判定、その判定結果をクリップボード経由でFMへ戻します。
【HTAコード 雛型】
mshta "javascript:
clipboardData.clearData('TEXT');
var fpath='<<ファイルパス>>';
var fso=new ActiveXObject('Scripting.FileSystemObject');
if(fso.FileExists(fpath)){
clipboardData.setData('TEXT','存在します');
} else {
clipboardData.setData('TEXT','否存在です');
};
fso=null;
close();"
そんな作例サンプルをアップしときます。
●サンプル「ファイル存在確認.fmp12」 → https://yahoo.jp/box/dvy6Sm
Last edited by Hiro (2017-08-10 18:44:19)
Offline
Hiroさん、回答ありがとうございました。
素晴らしい。
こっちの方がよさそうかな。
でも、qb_dpさんの方が意味がわかるし。
ちょっとどちらを採用するか考えます。
どうもありがとうございました。
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 511.71 KiB (Peak: 517.79 KiB) ]