Запустите другое приложение с помощью AppleScript, не показывая его на док-станции

Используя AppleScript, вы можете создать сценарий, запускающий другое приложение, а затем сохранить этот сценарий как приложение и поместить его в док. Проблема (на самом деле не проблема) в том, что когда вы щелкаете по нему, оно все равно будет показывать другое приложение на док-станции. Можно ли запретить другому приложению отображаться в доке, но при этом отображать его графический интерфейс, как это обычно происходит при выполнении?

Спасибо


person cria    schedule 26.11.2010    source источник
comment
Почему это проблема, если приложение отображается в Dock?   -  person Paul R    schedule 26.11.2010
comment
Это не так, поэтому я сказал (на самом деле не проблема), что на самом деле это хорошо (с точки зрения безопасности). Просто в моем случае я не хочу создавать новые значки и просто придерживаться нажатых.   -  person cria    schedule 26.11.2010
comment
Я до сих пор не понимаю, в чем заключается мотивация - почему вас заботит, есть ли еще один значок в Dock?   -  person Paul R    schedule 26.11.2010
comment
На самом деле, зачем вам заботиться, если я действительно хочу этого :) Мой сценарий требует этого, он может вам не понравиться, но это не заставит меня изменить свое желание, даже если ответ невозможен.   -  person cria    schedule 27.11.2010


Ответы (2)


Единственное решение, которое я могу придумать, - это изменить «другое приложение», чтобы в нем не было значка в доке. Это работает, но неприятно:
• Да, вы напрямую изменяете другое приложение, а не делаете что-то из своего скрипта.
• Соответственно, он будет изменять каждый запуск указанного другого приложения, а не только вызов из вашего скрипт.
• Он предотвращает появление строки меню в OtherApp (хотя комбинации клавиш и любые элементы управления в окне будут работать).

Это легко изменить, и почти всегда это можно сделать, просто добавив флаг режима графического интерфейса пользователя в файл Info.plist приложения:

  1. Щелкните другое приложение правой кнопкой мыши или, удерживая клавишу Ctrl, и выберите «Показать содержимое пакета».
  2. Откройте папку "Содержание".
  3. Откройте Info.plist в любом текстовом / xml-редакторе *
  4. Добавьте эти две строки сразу после первой строки, в которой написано <dict>
    <key>NSUIElement</key>
    <true/>
  5. Сохраните и запустите приложение. Помните, что нет строки меню, поэтому убедитесь, что одно из его окон имеет фокус и -Q для выхода, когда вы убедитесь, что оно работает без значка Dock.

* Если вы брезгливо редактируете xml или если файл plist является двоичным, вам понадобится специальный редактор plist. Собственный редактор списка свойств Apple включен в их бесплатные инструменты разработчика.

  1. Добавьте дочерний элемент в корень («Список информационных свойств»).
  2. Задайте имя NSUIElement.
  3. В меню «Правка» (или контекстном) установите для параметра «Тип значения» значение «Логическое».
  4. Установите флажок ВКЛ (устанавливает для bool значение true).
person Joel Reid    schedule 06.12.2010
comment
Хотя до сих пор нет, но это так близко, насколько это возможно. Спасибо! - person cria; 28.12.2010

Основываясь на предыдущем ответе, вы можете изменить Info.plist своего приложения Applescript с тем же кодом XML. Это предотвратит отображение значка в приложении Applescript (и наличие строки меню, которая, по моему опыту, в любом случае непригодна для этого типа «приложения»), но ваше основное приложение - то, которое вы запускаете из applescript - будет отображать в Dock как обычно.

Я пробовал это на OSX 10.7 Lion, и он успешно работал.

person Justin Ward    schedule 13.12.2011