Зареєструйте файл, вказаний у відкритому режимі


1

Таким чином, я маю цей невеликий пучок з яблука, зроблений, і він навіть, здається, працює як слід. Тим не менш, очевидно, не відкриває мої файли, коли його просять через open корисності. Це працює, хоча, коли я використовую шукач. Хто-небудь може мені допомогти? Мій код такий:

on open theFile
    set runner to ((path to me)'s POSIX path) & "Contents/MacOS/desk_parse"
    -- We need to escape some stuff here.
    -- Expected output: '/path/to/bundle.app//Contents/MacOS/dsk_parse' '/path/to/app.desk'
    do shell script "'" & runner & "' '" & (POSIX path of theFile) & "' &"
    --display dialog runner
end open

Знову ж таки, він працює з пошуку, але не з командного рядка, наприклад:

open "theFile.ext"

Мій Info.plist rads і також приймає розширення, яке я зберегла в ньому. Так що об'єднання фактично працює.

Відповіді:


0

Це нормальне поведінка: open обробник застосовується до:

  • Файли випали з програми Finder
  • Файли, що відкриваються, наприклад tell app "Finder" open ... using path to "Your Application"

Але не до:

  • Файли передаються як аргументи для open -a
  • Файли, відкриті в програмі, якщо додаток виконано за замовчуванням для типу файлу

Ви можете створити програму за допомогою Automator або Качкодзьоба замість цього.

Використовуючи Automator, використовуйте такі дії:

on run {input, parameters}
    say (POSIX path of item 1 of input)
end run

За допомогою Platypus встановіть прапорець "Прийняти опущені елементи" та використовуйте звичайний обробник:

#!/usr/bin/osascript

on run argv
    say item 1 of argv
end
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.