2013-03-05 3 views
1

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

Одна из таких команд - «Я хочу вернуться домой», которая, когда она будет услышана, вытаскивает соответствующее расписание автобусов в моем браузере. Учитывая, что в системе общественного транспорта используются PHP и GET, URL-адрес становится довольно длинным. Поэтому keystroke myURL в applescript занимает некоторое время, чтобы выполнить (что-то вроде 1-2 секунд). В то время как я могу жить с потерей 1-2 секунд, я бы действительно не хотел.

Имея это в виду, можно ли быстрее отправить эти нажатия клавиш? Кажется, я где-то читал, что использование key code происходит быстрее, чем с использованием keystroke, но для жизни я не могу понять, где я это читал.

EDIT: Моим браузером является Google Chrome, на который я не мог найти URL-адреса. Вот почему мне пришлось прибегать к нажатию клавиш. Поэтому я бы предпочел ответы, которые работают с Chrome over Safari.

ответ

0

Открытого расположение определяется в стандартных дополнениях и не должно быть заключено в РАССКАЖИ заявлении.

open location "http://google.com" 

Если вы хотите настроить таргетинг на конкретный браузер вы можете использовать:

tell application "Safari" 
    if not (exists document 1) then reopen 
    set URL of document 1 to "http://google.com" 
end tell 

Для целевой Chrome:

tell application "Google Chrome" 
    if not (exists window 1) then reopen 
    set URL of active tab of window 1 to "https://www.google.com/" 
end tell 
+0

Хотя это правильно (+1), я бы предпочел решение, которое работает с Chrome (мой браузер по выбору - см. Править) – inspectorG4dget

+0

Три правильные команды перечислены выше. – adayzdone

1

Я уверен, что вы можете приступить к скрипту своего браузера, чтобы открыть URL-адрес напрямую, вместо ввода нажатий клавиш (подделка событий ввода в AppleScript должна считаться последней курорт).

Вы можете сделать это с помощью стандартного добавка open location:

open location "http://google.com" 
+0

Нет проблем. Используйте File-> Open Dictionary ...; это чрезвычайно полезно. – nneonneo

+0

Я попробовал 'Open Dictionary'. К сожалению, было так мало крючков для Google Chrome, что мне приходилось прибегать к нажатиям клавиш – inspectorG4dget

+0

Как вы упомянули, «открытое местоположение» является стандартным дополнением к applescript. Таким образом, мне интересно, почему у вас есть эта команда внутри блока запроса Finder? Вам не нужно, чтобы Finder выполнял эту команду, поэтому просто используйте открытую локацию. – regulus6633

1

Другой способ решить это, чтобы поместить текст в буфер обмена , затем вставьте его. Сначала вы можете сохранить содержимое буфера обмена и вернуть его обратно, чтобы не потерять то, что уже есть. Этот метод работает в других ситуациях, когда вы хотите вводить много текста, а не только для URL-адресов браузера, как и другие ответы.

set clipboard_contents to (the clipboard) 
    set the clipboard to "Some long string that would take a while with the keystroke method" 
    tell application "System Events" to keystroke "v" using command down 
    delay 0.2 -- needed because otherwise the next command can run before the paste occurs 
    set the clipboard to clipboard_contents 
Смежные вопросы