AppleScriptでキープレスを自動化するにはどうすればよいですか?


81

Mozilla Firefox、Google Chrome、またはSafari(この順序で)でキー(「a」や「<」など)のキー押下を自動化することは可能ですか?たとえば、Mozilla Firefoxで1 x秒ごとに100回キー「a」を押すことを自動化したいです。x1秒毎のキー押下でランダムに選択された10秒の間の値です。どのApplescriptがトリックを作ることができますか?

また、キーボードの各キーのすべてのコードのリストはどこにありますか?


「キーを押すたびにランダムに選択される」という部分がわかりません。
ニコラスバルブレスコ

@NicolasBarbulesco-各キーを押す前に、ランダムに選択された1〜10秒の長さの遅延。そのため、毎回異なります。
ToolmakerSteve

回答:


139

AppleScript Editorで次のようなスクリプトを実行します。

activate application "Firefox"
repeat 100 times
    tell application "System Events" to keystroke "a" using command down
    delay (random number from 0.5 to 5)
end repeat

その他の例:

tell application "System Events"
    key code 123 using {shift down, command down} -- shift-command-left
end
set old to (path to frontmost application as text)
tell application "Notes"
    reopen
    activate
end tell
tell application "System Events" to keystroke "f" using {control down, command down}
delay 1
activate application old
delay 0.5 -- time to release modifier keys if for example the script is run with command-R
tell application "System Events" to tell process "Notification Center"
    try
        key down option
        delay 0.1
        click menu bar item 1 of menu bar 1
    end try
    key up option
end tell

Events.hキーコードのリストを参照してください。

$ grep '^ * kVK' /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h|tr -d、| read read xyz; do printf ' %d%s%s \ n '$ z $ z $ {x#kVK _}; done | sort -n
0 0x00 ANSI_A
1 0x01 ANSI_S
2 0x02 ANSI_D
3 0x03 ANSI_F
4 0x04 ANSI_H
5 0x05 ANSI_G
6 0x06 ANSI_Z
7 0x07 ANSI_X
8 0x08 ANSI_C
9 0x09 ANSI_V
10 0x0A ISO_Section
11 0x0B ANSI_B
12 0x0C ANSI_Q
13 0x0D ANSI_W
14 0x0E ANSI_E
15 0x0F ANSI_R
16 0x10 ANSI_Y
17 0x11 ANSI_T
18 0x12 ANSI_1
19 0x13 ANSI_1
T
21 0x15のANSI_4
22 0x16 ANSI_6
23 0x17のANSI_5
24 0x18のANSI_Equal
25 0x19 ANSI_9
26 0x1A ANSI_7
27として0x1B ANSI_Minus
28 0x1cにANSI_8
29 0x1DのANSI_0
30 0x1EをANSI_RightBracket
31 0x1FのANSI_O
32の0x20 ANSI_U
33 0x21でANSI_LeftBracket
34ただし0x22 ANSI_I
35 0x23 ANSI_P
36 0x24を復路
37 0x25 ANSI_L
38 0x26 ANSI_J
39 0x27 ANSI_Quote
40 0x28 ANSI_K
41 0x29 ANSI_Semicolon
42 0x2A ANSI_Backslash
43 0x2B ANSI_Comma
44 0x2C ANSI_Slash
45 0x2D ANSI_N
46 0x2E ANSI_M
47 0x2F ANSI_Period
48 0x30からタブ
49 0x31スペース
50 0x32のANSI_Grave
51 0x33の削除
53 0x35のエスケープ
55 0x37はコマンド
56 0x38シフト
57ます。0x39 CapsLockキー
58 0x3Aオプション
59 0x3Bコントロール
60 0x3cのRightShift
61 0x3D RightOption
62 0x3E RightControl
63は0x3F機能
64 0x40のF17
65 0×41をANSI_KeypadDecimal
67 0x43 ANSI_KeypadMultiply
69 0x45 ANSI_KeypadPlus
71 0x47 ANSI_KeypadClear
72 0x48 VolumeUp
73 0x49 VolumeDown
74 0x4A Mute
75 0x4B ANSI_KeypadDivide
76 0x4C ANSI_KeypadEnter
78件の0x4E ANSI_KeypadMinus
79 0x4FのF18
80 0x50をF19
81 0x51 ANSI_KeypadEquals
82 0x52 ANSI_Keypad0
83 $ 53 ANSI_Keypad1
84が0x54 ANSI_Keypad2
85は0x55 ANSI_Keypad3
86 0x56 ANSI_Keypad4
87 0x57 ANSI_Keypad5
88 0x58 ANSI_Keypad6
89 0x59 ANSI_Keypad7
90 0x5A F20
91 0x5B ANSI_Keypad8
92 0x5CをANSI_Keypad9
93 0x5D JIS_Yen
94 0x5EのJIS_Underscore
95 0x5F JIS_KeypadComma
96 0x60 F5
97 0x61 F6
98 0x62 F7
99 0x63 F3
100 0x64 F8
101 0x65 F9
102 0x66 JIS_Eisu
103 0x67 F11
104 0x68 JIS_Kana
105 0x69のF13
106 0x6AのF16
107 0x6B F14
109 0x6D F10
111 0x6FのF12
113(0x71)をF15
114 0x72ヘルプ
115 0x73ホーム
116 0x74 PageUpキー
117 0x75 ForwardDelete
118 0x76 F4
119 0x77エンド
120 0x78とF2
121 0x79 PageDownキー
122 0x7AのF1を
123 0x7BとLeftArrow
124 0x7C RightArrow
125 0x7D DownArrow
126 0x7E UpArrow

AppleScriptを使用してメニュー項目をクリックすることもできます。

tell application "System Events" to tell (process 1 where frontmost is true)
    click menu item "Minimize" of menu 1 of menu bar item "Window" of menu bar 1
end tell
tell application "System Events" to tell process "Finder"
    set frontmost to true
    tell menu bar item 3 of menu bar 1
        click
        click menu item "Open With" of menu 1
    end tell
end tell

Automatorを使用した例はありますか?
アーメドファシィ14

修飾子なしでキーを入力する場合はusing command down、その行から削除します。
フリム

修飾子を使用して複数のキーでこれを行うにはどうすればよいですか?例:コマンド+オプション+ H + M
Mort

@Mort複数のkey down <key>ステートメントを実行するだけ
-daviesgeek

4
警告:すべてのコードがtryブロックにあり、ブロックの後に安全キーが入っていることを確認してください!私は私で捕まってしまったcontrolキャッチされない例外のためにしばらくの間、ダウンキーとかなりイライラしました。
mVChr
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.