Як скопіювати текстовий вміст діалогового вікна в ОС X?


9

Багато людей не знають, що в Windows ви можете скопіювати весь текстовий вміст MessageBox, натиснувши Ctrl ⌃+, Cколи діалогове вікно зосереджено.

Це важлива особливість повідомлень про повідомлення про помилки, а в деяких випадках їх може бути величезна кількість.

І все-таки здається, що в OS X це Command ⌘+ Cне працює, і мені цікаво, чи існує інший метод для цього.

Робити скріншоти не так зручно, тим більше, що їх не можна шукати: p

Я шукаю загальне рішення, якщо воно існує . Ось приклад:

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


2
У деяких випадках ви можете вибрати текст за допомогою миші / трекпада, і як тільки він буде вибраний, ви можете скопіювати його на Cmd + C; але, на жаль, це не завжди можливо
йолсміт

Здається, це залежить від того, як розробник реалізував діалог. У Safari, Textmate та Terminal діалоги, які я намагався, були обрані. Я спробував переглянути діалогове вікно про програму Transmit, і її текст не можна вибрати.
бадам

Домовились. Все залежить від коробки. Деякі текстові поля я можу вибрати, деякі я не можу. Ваша найкраща ставка - просто зробити знімок екрана діалогового вікна.
daviesgeek

Відповіді:


6

Найбільш загальним способом може бути використання Інспектора доступності та копіювання тексту у його вікно.

У Mac OS X v10.4 та новіших версій Apple пропонує інструмент тестування Інспектора доступності ...

Інспектор доступності представляє вікно утиліти, яке відображає атрибути (та значення), дії та положення в ієрархії доступності об'єкта, що знаходиться під покажчиком миші. Щоб використовувати Інспектор доступності, не забудьте включити допоміжні програми в Універсальних налаштуваннях доступу.

Значок інспектора доступності

Ось приклад Trim Enabler, де ви не можете вибрати та скопіювати текст на вкладці "Про":

Обрізка Enabler - вкладка Про

І вікно, що відображається Інспектором доступності:

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

Це відбувається при наведенні курсору миші на довгий текст, який потім можна знайти в AXValue.

Редагувати 2014-10-18:

Наступний приклад показує поетапно, як скопіювати текст, який не можна вибрати, використовуючи Інспектор доступності 4.0:

Відкрийте вікно, з якого слід витягувати інформацію, і відкрийте Інспектор доступності, а потім наведіть курсор миші на елемент, що цікавить:

copy_text_with_Accessibility_Inspector

Натисніть Command ⌘+, 7щоб заблокувати Інспектор доступності, потім натисніть на рядок, який потрібно скопіювати (наприклад, AXValue), а потім натисніть Command ⌘+, Cщоб скопіювати його у буфер обміну:

lock_Accessibility_Inspector_and_select_AXValue

Вставте скопійований текст там, де потрібно:

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


Я спробував це зробити за допомогою інспектора доступності, але не зміг отримати текст. Чи можете ви пояснити кроки?
Metal Gear

1
@MetalGear -> Я додав ще один приклад, який показує крок за кроком, як скопіювати потрібний текст за допомогою Accessibility Inspector 4.0
iolsmit

1

Загальний випадок полягає в тому, що програмісту потрібно викрити цей текст у діалоговому вікні, тому ви не можете просто скопіювати текст, якщо програма не має наміру мати цю функцію.

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

Ви також можете спробувати зламати цю програму та змінити діалоговий виклик, щоб змінити речі, щоб він завжди був обраний. Це може стати кращим питанням для програмної сторони речей.

Ви зробили практичну справу - зробіть знімок і сподівайтеся, що повідомлення записане в іншому місці в текстовий файл. Посилання на це питання може бути приємним способом запитати розробника програм, де вам потрібна така здатність змінювати їх практику кодування, як Safari, Terminal та інші програми, згадані в коментарях вище.


0

Ви також можете запустити такий сценарій у редакторі AppleScript:

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

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

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