1

私はいくつかのブラウザアクティビティを自動化するためにapplescriptを使用しています。カスタム音声コマンドを作成できるように、音声認識に関連付けています。

そのようなコマンドの1つは、「家に帰りたい」です。これを聞くと、ブラウザに関連するバスの時刻表が表示されます。公共交通機関がPHPとGETを使用していることを考えると、URLはかなり長くなります。したがって、keystroke myURLapplescriptのinは実行に時間がかかります(1〜2秒程度)。私は1〜2秒を失って生きることができますが、実際にはそうではありません。

それを念頭に置いて、これらのキーストロークをより速く送信することは可能ですか?key codeどこかで読むよりも使うほうが速いと思いますが、一生の間、どこで読んだのかわかりkeystrokeません。

編集:私の選択したブラウザはGoogle Chromeですが、URLフックが見つかりませんでした。これが、私がキーストロークを使用することに頼らなければならなかった理由です。したがって、SafariよりもChromeで機能する回答をお勧めします

4

3 に答える 3

2

これを解決する別の方法は、テキストをクリップボードに入れてから貼り付けることです。最初にクリップボードの内容を保存し、後で元に戻すことができるので、すでにそこにあるものを失うことはありません。この方法は、他の回答のようなブラウザ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
于 2017-07-24T00:54:55.097 に答える
1

キーストロークを入力する代わりに、ブラウザにスクリプトを記述してURLを直接開くことができると確信しています(AppleScriptでの偽の入力イベントは最後の手段と見なす必要があります)。

open locationこれは、標準の追加で行うことができます。

open location "http://google.com"
于 2013-03-05T15:25:54.923 に答える
0

オープンロケーションは標準追加で定義されており、tellステートメントで囲むべきではありません。

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
于 2013-03-05T15:41:00.653 に答える