Nano Hash - криптовалюты, майнинг, программирование

Доступ к Applescript из двух разных меню дает разные результаты. Почему?

У меня есть приложение со встроенным меню сценариев для запуска Applescripts. Однако, если вы попытаетесь запустить сценарии с определенными функциями (в основном связанными с пользовательским интерфейсом), они не будут работать, если вы не запустите их из меню системных сценариев (в строке меню).

Например, если в приложении вы говорите:

tell application "System Events" to tell application process "theApp" to get all windows

он вернет пустой список, если запускается из меню сценариев программы, и 2, если запускается из меню системных сценариев. Я также пробовал:

tell application "System Events"
    tell application process "theApp" 
        set allElements to UI elements
        display dialog (count of allElements)
    end tell
end tell
-- returns 2 when run from System script menu but 0 when run from within theApp.

Также, если вы запускаете из редактора сценариев, он будет работать нормально. Сценарии с графическим интерфейсом включены для приложения в Системных настройках, поэтому мне любопытно, почему это происходит, и есть ли какие-либо обходные пути для этого (кроме запуска сценария из меню «Системный сценарий»)? Словарь показывает Standard Suite, поэтому он должен иметь доступ к окнам...

Любые идеи?


  • Одна из проблем может быть связана с реализацией меню сценария приложения. Поскольку вы не раскрываете, что такое приложение, я предположил, что это вы написали? Когда вы запускаете из каждого другого места, этот домен отличается, поэтому информация пользовательского интерфейса будет изначально отличаться. Попробуйте добавить: скажите приложению theApp активировать строку. 20.04.2015

Ответы:


1

Я полагаю, что вы не настроили рассматриваемое приложение для использования вспомогательных устройств.

Вы действительно должны открыть Системные настройки, затем нажать кнопку «Безопасность», затем разблокировать и нажать кнопку «Вспомогательные устройства» (синий значок с белым человеком), затем перетащить на него свое приложение (покажите свое приложение из его Dock меню) и разрешите ему управлять вашей машиной, не забудьте впоследствии заблокировать панель.

Я не могу гарантировать, что это сработает, но попробовать, безусловно, стоит.

20.04.2015
  • Вот что я имел в виду, говоря, что сценарии графического интерфейса включены ... Я просто не уточнил. На самом деле я выключил его, а затем снова включил для приложения, чтобы сбросить его ... все еще не работает. 20.04.2015
  • Тогда я бы скорее обратился к поставщику приложения, потому что, если вы добавляете или удаляете элементы меню сценария, это не должно восприниматься как какие-либо изменения, внесенные в приложение, по крайней мере, так я это понимаю. Потому что, если вы включите сценарии графического интерфейса, это должно работать, пока вы не измените приложение. 20.04.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..