Как я копирую текстовое содержимое диалогового окна на OS X?

9

Многие люди не знают, что в Windows вы можете скопировать весь текстовый контент MessageBox, нажав Ctrl ⌃+, Cкогда диалоговое окно сфокусировано.

Это важная функция для сообщения об ошибках, а в некоторых случаях они могут быть огромными.

Тем не менее, кажется, что в OS X этот Command ⌘+ Cне работает, и мне интересно, есть ли другой способ сделать это.

Делать скриншоты не так удобно, тем более что они не доступны для поиска: p

Я ищу общее решение, если оно существует . Вот пример:

введите описание изображения здесь

Сорин
источник
2
В некоторых случаях вы можете выделить текст с помощью мыши или трекпада, а после выделения вы можете скопировать его с помощью Cmd + C; но, к сожалению, это не всегда возможно
iolsmit
Кажется, это зависит от того, как разработчик реализовал диалог. В Safari, Textmate и Terminal все диалоговые окна, которые я пробовал, были доступны для выбора. Я попытался просмотреть диалоговое окно about для Transmit, но его текст нельзя выбрать.
Badams
Согласовано. Все зависит от коробки. Некоторые текстовые поля я могу выбрать, некоторые я не могу. Лучше всего сделать снимок экрана с диалоговым окном.
daviesgeek

Ответы:

6

Наиболее общим способом может быть использование инспектора доступности и копирование текста из его окна.

В Mac OS X 10.4 и более поздних версиях Apple предоставляет инструмент тестирования Accessibility Inspector ...

Инспектор специальных возможностей представляет служебное окно, в котором отображаются атрибуты (и значения), действия и положение в иерархии специальных возможностей объекта, который в данный момент находится под указателем мыши. Чтобы использовать Accessibility Inspector, обязательно включите вспомогательные приложения в настройках универсального доступа.

Значок инспектора специальных возможностей

Вот пример для Trim Enabler, где вы не можете выбрать и скопировать текст вкладки «О программе»:

Trim Enabler - О вкладке

И окно, отображаемое Инспектором Доступности:

Пример инспектора доступности

Это происходит при наведении указателя мыши на длинный текст, который затем можно найти в AXValue.

Изменить 2014-10-18:

В следующем примере показано, как пошагово скопировать текст, который нельзя выбрать с помощью Accessibility Inspector 4.0:

Откройте окно, из которого должна быть извлечена информация, и откройте Accessibility Inspector, затем наведите указатель мыши на интересующий элемент:

copy_text_with_Accessibility_Inspector

Нажмите Command ⌘+, 7чтобы заблокировать инспектор специальных возможностей, затем щелкните строку, которую хотите скопировать (например, AXValue), и нажмите Command ⌘+, Cчтобы скопировать ее в буфер обмена:

lock_Accessibility_Inspector_and_select_AXValue

Вставьте скопированный текст, где это необходимо:

вставленный текст

iolsmit
источник
Я пытался сделать это с помощью инспектора специальных возможностей, но не смог получить текст. Можете ли вы объяснить шаги?
Metal Gear
1
@MetalGear -> Я добавил еще один пример, в котором пошагово показано, как скопировать нужный текст с помощью Accessibility Inspector 4.0
iolsmit
1

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

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

Вы также можете попытаться взломать эту программу и изменить вызов диалога, чтобы изменить его так, чтобы он всегда можно было выбрать. Это может сделать лучший вопрос для программистов.

Вы сделали практическую вещь - сделайте снимок и надейтесь, что сообщение записано в другом месте в текстовый файл. Ссылка на этот вопрос может быть хорошим способом спросить разработчика программ, где вам нужна эта возможность, чтобы изменить их практику кодирования, такую ​​как Safari, Terminal и другие программы, упомянутые в комментариях выше.

bmike
источник
0

Вы также можете запустить такой скрипт в редакторе AppleScript:

tell application "System Events"
    value of UI elements of windows of process "Application Name"
end tell

Если вы не видите текст в результатах, попробуйте добавить одну или несколько UI elements ofчастей после value of.

LRI
источник