みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FM Pro 15
Windows7Pro 64bit
タイトルでは分かりにくいと思いますが、
やりたい事を簡単に言うと、フィールドを選択するとエクスプローラが起動し、
あるファイルを選択すると元のフィールドにファイルのフルパスが入力されるといった仕組みです。
よくある仕組みだとは思いますが、
FMのスクリプトでも実現可能でしょうか?
Offline
外部のプラグインなどを利用しないと無理でしょう。
Offline
Win版FMP なら比較的簡単に取得できますヨ。
HTAスクリプトを「Eventを送信」して、選択パスをクリップボード経由で取得します。
●【スクリプト内容】
ーーーーーーーーーーーーーーーーーーーーー
###ファイルパス取得FMスクリプト###
・Event を送信 [「aevt」; 「odoc」; テーブル名::HTAソースフィールド]
・Loop
・ スクリプト一時停止/続行 [間隔(秒): 1]
・ 貼り付け [選択; テーブル名::ファイルパスフィールド]
・ Exit Loop If [テーブル名::ファイルパスフィールド ≠ ""]
・End Loop
・フィールドへ移動 []
●【HTAソース(グローバル・テキストフィールド)のフィールド内容】
ーーーーーーーーーーーーーーーーーーーーー
mshta "about:
<input type='file' name='FILE'>
<script>
clipboardData.clearData('Text');
FILE.click();
if(FILE.value==''){
clipboardData.setData('text','キャンセルボタンが押されました。');
}else{
clipboardData.setData('text',FILE.value);
};
close();
</script>"
Last edited by Hiro (2017-06-30 15:31:08)
Offline
以下で、ファイル選択ダイアログっぽい事は出来ます。
スクリプト例:
ファイルを挿入 [フィルタ; 参照; 圧縮しない; TEST::obj]
変数を設定 [$filePath; 値:GetValue ( GetAsText ( TEST::obj ) ; 2 )]Offline
Hiro様
ご教示いただいた通り、HTAとFMスクリプトの組み合わせで実現できました!
HTAは私には馴染みのない技術でしたのでソースはまだ理解できていませんが、
こんな方法があるのかと驚きでした!
ありがとうございます。
Offline
Pages: 1
[ Generated in 0.024 seconds, 7 queries executed - Memory usage: 559.97 KiB (Peak: 587.97 KiB) ]