2013-08-19 4 views
0

Я пишу простой скрипт для поиска приложения из магазина iTunes. Приложение выполняет следующие действия:AppleScript: поиск имени приложения со смешанной кодировкой символов

- прочитать приложение из пользовательского ввода (текстовое поле в диалоговом окне)

- Возьмите имя приложения в переменной и нажатие клавиши имя приложения в текстовом поле поиска в iTunes (правый верхний угол).

- Нажмите enter (возврат на клавиатуре).

Проблема, которую я борюсь является:

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

И иногда имя приложения содержит как набор символов EN, так и JP.

Может ли кто-нибудь помочь мне определить кодировку символов каждого персонажа с помощью AppleScript?

Спасибо и наилучшими пожеланиями

Rahman

ответ

1

Вы могли бы просто использовать itunes URL-адреса:

itunes://ax.search.itunes.apple.com/WebObjects/MZSearch.woa/wa/search?term=漢字 
text returned of (display dialog "" default answer "") 
do shell script "u=itunes://ax.search.itunes.apple.com/WebObjects/MZSearch.woa/wa 
q=$(printf %s " & quoted form of result & " | xxd -p | tr -d '\\n' | sed 's/../%&/g') 
open $u/search?term=$q" 

Вы также можете использовать буфер обмена для вставки текста:

try 
    set old to the clipboard as record 
end try 
set the clipboard to "漢字" 
tell application "System Events" 
    keystroke "v" using command down 
end tell 
delay 0.1 
try 
    set the clipboard to old 
end try 

Если буфер обмена пуст, попытка получить его приводит к ошибке. the clipboard - это как the clipboard as text, но the clipboard as record также включает в себя другие типы. Имитация нажатий клавиш обычно быстрее, чем щелчок элементов меню, а нажатие элементов меню не работает в полноэкранном режиме или когда приложение не имеет панели меню. Без задержки, set the clipboard to old иногда запускается до того, как текст будет вставлен.

Или в этом случае вы можете использовать сценарии интерфейса:

tell application "iTunes" 
    reopen 
    activate 
end tell 
tell application "System Events" to tell process "iTunes" 
    tell text field 1 of (get value of attribute "AXMainWindow") 
     set value to "漢字" 
     set selected to true 
    end tell 
    keystroke return 
end tell 
+0

Это просто замечательно !!! Установленное значение "漢字" Решила мою проблему .. Большое спасибо !!! –

+0

Хотя я думал, что концепция буфера обмена во время сна вчера ночью, но вы упомянули об этой концепции. По крайней мере, моя мысль была одобрена ... LOL. В любом случае еще раз спасибо. –