みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Windows8.1 / FileMakerPro15 / FileMakerServer15
いつもお世話になっています。
オブジェクトフィールをボタン化して写真を取り込むスクリプトを作って利用しています。
※今のスクリプト
エラー処理[オン]
ファイルを挿入[内容を表示;可能な場合圧縮;Aテーブル名::オブジェクトフィールド名]
上記スクリプトで開いたフォルダから希望のフォルダを選択して画像の取り込みは問題ないのですが、
別の用途で、案件ごと(レコード毎)にサーバーにフォルダを作っていて上記スクリプトで挿入する写真も
同じフォルダ内の写真フォルダに入っています。
サーバーのパスは別のフォールド[Aテーブル名::フォルダパス]に入力されています。
そこで「ファイルを挿入」のスクリプトの際に、[Aテーブル名::フォルダパス]のフォルダを開くように
したいのですが可能でしょうか?
ファイル名も指定するのであれば理解できるのですが、画像フォルダの中でどの写真を選ぶかは見ながら選択を
したいと考えていますのでファイルの指定ではなくフォルダの指定を行いたいです。
宜しくお願い致します。
Offline
スクリプト:「ファイルを挿入」で、フォルダを指定して開く機能はありません。
PowerShell の SendKeys で強引に指定フォルダを表示するサンプルです。
スクリプト:「ファイルを挿入」の前に
スクリプト:「Event を送信」でPowerShellを実行します。
FileMaker のスクリプト
Event を送信 [「aevt」; 「odoc」; 対象アプリケーションを手前に表示[OFF]
計算
"powershell -WindowStyle Hidden -Command " &
Quote ( "
add-type -AssemblyName System.Windows.Forms;
$wShell=new-object -comobject wscript.shell;
$bool=$wShell.AppActivate('ファイルを挿入') ;
start-sleep -Milliseconds 500;
if($bool)
{
$wShell.SendKeys('%N') ;
[System.Windows.Forms.SendKeys]::SendWait('" & Aテーブル名::フォルダパス & "');
[System.Windows.Forms.SendKeys]::SendWait('{ENTER}');
}
")ファイルを挿入 [TEST::obj]
Offline
今、Winでテスト出来ないんですが、Macなら、
ファイルを挿入
のパスを、ファイル名なしで指定するとそのフォルダのウインドウが開きますが。。
Offline
qb_dpさま
ありがとうございます。
上記のコピペと実際のフィールド名に書き換える事で解決致しました。
(Event を送信」でPowerShellは全く理解できていませんが)
自力では絶対に解決出来なかったです。
Offline
チポ様
Macならそのままいけるのですね
できればWinでもデフォルトで指定できるようにしてほしいですね
Offline
いつもお世話になっております
こちらの返信を参考にファイルを挿入で特定フォルダを開くスクリプトを組んでいましたが、いつのまにかおかしくなり、フォルダパスの頭にある\\が\\\と3つになってしまっておりフォルダを開く事が出来なくなりました。
もちろんエクスプローラーで頭の\を一つ消せば正しいパスを開いてはくれます。フォルダパスを入力しているフィールドの入力値を確認しましたが、やはり\は2個から始まっていて、Event を送信のPowerShell内容もフィールド名以外は同じでした。
環境:FMS17・FM17・Windows10
症状:
フィールド値:\\192.168.100.200\親フォルダ\子フォルダ
PowerShell実行値:\\\192.168.100.200\親フォルダ\子フォルダ
PowerShellを全く理解出来ておらずご教示頂けると助かります
Last edited by nori (2022-04-27 13:45:12)
Offline
\\\ を \\ に置換してしまえば、動作します。
"powershell -WindowStyle Hidden -Command " &
Substitute (
Quote ( "
add-type -AssemblyName System.Windows.Forms;
$wShell=new-object -comobject wscript.shell;
$bool=$wShell.AppActivate('ファイルを挿入') ;
start-sleep -Milliseconds 500;
if($bool)
{
$wShell.SendKeys('%N') ;
[System.Windows.Forms.SendKeys]::SendWait('" & Aテーブル名::フォルダパス & "');
[System.Windows.Forms.SendKeys]::SendWait('{ENTER}');
}
")
; "\\\\\\" ; "\\\\" )Offline
あ~... Quote() をはずすだけで良いかも。
"powershell -WindowStyle Hidden -Command " &
"\"
add-type -AssemblyName System.Windows.Forms;
$wShell=new-object -comobject wscript.shell;
$bool=$wShell.AppActivate('ファイルを挿入') ;
start-sleep -Milliseconds 500;
if($bool)
{
$wShell.SendKeys('%N') ;
[System.Windows.Forms.SendKeys]::SendWait('" & test::path & "');
[System.Windows.Forms.SendKeys]::SendWait('{ENTER}');
}
\""Offline
qb_dp様
「Quote() をはずすだけ」の方で解決致しました。
いつもありがとうございます。
Offline
Pages: 1
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 569.84 KiB (Peak: 586.05 KiB) ]