AppleScriptが新しく、ファイルを安全に消去するためのスクリプトを作成しました。ファイル選択ダイアログと確認が表示され、ファイルが消去されます。しかし、ドラッグアンドドロップ機能を追加しようとしたとき、みんなが言うべきように機能しません。アイコンはハイライトされません(ドラッグアンドドロップが機能していることを示しています)。Finderはアプリにドラッグするのではなく、ファイルをアプリのフォルダにコピーします。ここでAppleScriptのドラッグアンドドロップが機能しない
が正常に動作し、元のスクリプトは、(「ワイプFile.app」として保存された)である:
on run
set the_file to choose file with prompt "Select the file to wipe:"
wipe_file(the_file)
end run
to wipe_file(file_to_wipe)
set file_to_wipe to POSIX path of file_to_wipe
set ok_to_wipe to display dialog "Are you sure you want to wipe \"" & file_to_wipe & "\"?" buttons {"Cancel", "OK"} default button "Cancel"
set ok_to_wipe to button returned of ok_to_wipe
if (ok_to_wipe = "OK") then
tell application "Terminal"
activate
do script "set prompt='';cls;srm -v \"" & file_to_wipe & "\""
delay 3
close front window
set still_active to count windows
if still_active = 0 then
quit
end if
end tell
end if
end wipe_file
それから私は先頭に次を追加しました。スクリプトを実行すると、ファイル選択ダイアログが表示されますが、システムはドラッグアンドドロップを許可しません!
私が見たところ(Google、スタックのオーバーフロー)は、このアプローチはうまくいくはずですが、そうではありません。私もブロックon run...
を取り除こうとしましたが、ちょうどon open...
のままですが、スクリプトは何もしません。
EDIT
私は上記の内容で新しいスクリプトを作成し、アプリケーションフォルダにコピーし、アプリとしてそれを保存し、その上にカスタムアイコンを貼り付けた場合は、ドラッグ&ドロップで動作します。しかし、もともと「オープン」のサポートを持たなかった古いスクリプトは、「オン・オープン」サポートがスクリプトに追加された後でもまだ動作しません。だから私は、Appleがドラッグアンドドロップをサポートするための特別な属性を設定しなければならないと思っています。なぜなら何らかの理由で(私が最初に保存したときにそれがなかったからです) 。両方のアプリケーションのための情報やパッケージの内容を表示ゲットを見てみると、いくつかの奇妙な違いがあります。
- 新しく作成された(作業)アプリは唯一の693キロバイトですが、(おそらく同じ、しかし壊れた)古いものは9.4ですMB!
- 新しい(作業中の)アプリケーションには「液滴」というファイルがありますが、古いもの(破損したもの)には「アプレット」というファイルがあります。
最初のものは奇妙なもので、何らかのファイル破損が考えられましたが、第2のものは明らかにAppleがドラッグアンドドロップで使用する魔法の設定です。私は、作業中のスクリプトから「開いている」ブロックを削除して保存した場合、アップルはを実行しないことを確認しました "ドロップ"矢印を削除するスクリプトアイコンを更新します。何も起こりません。
アップルは、スクリプトがドラッグ&ドロップをサポートしているかどうかを判断します。スクリプトを保存して初めてかどうかは決まっていません。
私は、ターミナルウィンドウを開き、SRMのための冗長オプションを使用する理由は、それが行くように、私は進歩を見ることができるそうです。私は "遅延3"を持っているので、ウィンドウが閉じられる前に3秒間結果が表示されます。 – GTB
私はあなたのスクリプト(デスクトップ上にアプリケーションとして保存されています)を試してみましたが、確認ウインドウはありませんでしたが、ドラッグ&ドロップで動作しました。それからあなたのスクリプトをコピーして貼り付けました。また、ドラッグアンドドロップのために冗長な確認ウィンドウが表示されていました。しかしそれは動作しないスクリプトの正確なテキストコピーですが、アプリケーションフォルダにはなく、カスタムアイコンがありません。私は、a)作業スクリプトをアプリケーションにコピーしてみましょう。 b)作業中のスクリプトにカスタムアイコンを入れて、それが壊れているかどうかを確認します(スクリプトアイコン上に特別な「ドロップ」矢印が表示されたときにカスタムアイコンを考えました)。 – GTB
あなたの助けをありがとう、それは実際の問題ではありませんでしたが、それは私が問題を発見するように導きました(私の編集された質問を参照)。明らかに、アップルは「オープン」の存在に基づいて、ファイルを「アプレット」か「ドロップレット」かにかかわらず最初に保存するかどうかを決定します。追加するコンテンツを編集しても変更されませんまたは「開いている」ブロックを削除してください。また、私はあなたの "引用フォーム"と "try ... end try"ブロックを元のスクリプトに組み込みました。 – GTB