FILEMAKER プラグイン など (助け合い)フォーラムにようこそ!
何方でも、ご質問・ご回答お願いします。
※2024/01/31 までに登録された方は、登録時のパスワードが使えません。
パスワードを再発行してください。
ページ: 1
初めまして
PowerShell 初心者なのでレベルの低い質問とは思いますがご容赦願います
サンプルの ファイル選択ダイアログ
https://sites.google.com/site/scriptmak … authuser=0
の $PS の設定値をコピーして フィールド source に張り付ます
もちろん前後の " は削除します。
(両引用符の混在はややこしいのでフィールドを使います)
そのうえで $Arguments 設定する値の中のシングルクオートをダブルクオートに変更します
例: if ($dialog.ShowDialog() -eq 'OK') {
→ if ($dialog.ShowDialog() -eq "OK")
で
変数を設定 [$dummy , SMPS_Exe( フィールドsource )
を実行します。
するとファイル選択ダイアログが出なくなります。
(シングルクオートならダイアログは出ます)
展開すべき変数もないのでシングルでもダブルでもよいのでは
と思いますが、なぜダブルクオートでは正しく動作しないのでしょうか?
あとこのサンプルで
SMPS_Exe でなく SMPS_ExecSync を使用しているのはなぜでしょう?
SMPS_ExecSync だと実行が遅く使い物にならないのですが?
オフライン
展開すべき変数もないのでシングルでもダブルでもよいのでは
と思いますが、なぜダブルクオートでは正しく動作しないのでしょうか?
不明です。
が、Add-Type -Assembly...の部分は、通常の記述とは異なり、
System.Diagnostics.Process の引数として渡しているのが関係しそうです。
SMPS_Exe でなく SMPS_ExecSync を使用しているのはなぜでしょう?
SMPS_Exe( Script )を実行すると FileMakerは、30秒間は、PowerShell Scriptの終了を待ちます。
PowerShell Scriptの処理が30秒以上かかっているFileMakerにコントロールが戻りますが、PowerShell Scriptの処理は、継続されます。PowerShell Scriptの状況は、SMPS_Get("PSThreadState")で確認できます。
SMPS_ExecSync( Script )を実行すると FileMakerは、PowerShell Scriptの終了を待ちます。
オフライン
回答ありがとうございます。
>>不明です。
いろいろ試したら ダブルコーテーション3っで値が引き渡される
"""value""" --> "value"
ことまでわかりました。ダブルクオーテーションに限って引きはがしが行われるようです
>>SMPS_ExecSync だと実行が遅く使い物にならない
その後、何度か試しましたがそんなことはありませんでした。当方のオペミスでした。
オフライン
追加質問です。
ファイル選択ダイアログ サンプルをそのままSMPS_ExecSync で実行しました、
ダイアログがでて何もしないでいると30秒もたたないうちに
「サーバー使用中
他のプログラムがビジー状態のため、この作業を完了できません。。。
」 というダイアログが出て、ダイアログを閉じない限り何もできなくなります
Windowsの場合、それでもFMの操作はできず、WindowsのタスクバーからFMをクリックして表示しなおさないと
FMが操作できなくなります
SMPS_exeの場合、このようなことはないのですが、30秒たってから、ファイル選択ダイアログで選択しても、当然結果が取得できません。
どちらにせよ業務に使用できません。
何か解決できる方法はないでしょうか?
オフライン
ページ: 1
[ 0.012 秒でページを生成, 9 クエリーを実行 - 使用メモリー: 502.24 KiB (ピーク: 505.42 KiB) ]