AppleScript可以在应用程序中自动为我按键吗?


1

我正在尝试设置一个AppleScript,它会自动按下右箭头键1秒钟,然后按下左箭头键1秒钟,然后在无限循环中重复此操作直到我中断它。

这是我到目前为止所提出的,但它并不是很有效:

tell application "VisualBoyAdvance"
    repeat 100 times
        tell application "VisualBoyAdvance" to keystroke "124"
        delay 1
    end repeat     
end tell 

你能添加一个迄今为止你尝试过的代码示例吗?您将从向您的脚本提供反馈的人那里学到更多,而不仅仅是从某人那里复制。
nohillside

有趣的要求。你需要什么?
拉斯克斯2013年

@Buscar웃我猜他需要自动孵化他的小精灵蛋...... 我在寻求做同样的事情时偶然发现了这个问题...
aksh1t 2014年

Answers:


2

您可以重复键代码命令,直到最前面的应用程序更改为止:

delay 1
activate application "TextEdit"
tell application "System Events"
    repeat while (path to frontmost application) is (path to application "TextEdit")
        repeat 3 times
            key code 123
            delay 0.3
        end repeat
        repeat 3 times
            key code 124
            delay 0.3
        end repeat
    end repeat
end tell

较短的延迟(包括0.2秒)使得停止脚本变得困难。我不得不按住⌥⇧⌘⎋强制退出TextEdit。

这只向左移动了一次:

delay 1
tell application "System Events"
    key down (character id 28)
    delay 5
    key up (character id 28)
end tell
  • 左:123/28
  • 右:124/29
  • 下:125/31
  • 上:126/30

1

我刚做了一些测试:AppleScript不适合你所要求的,因为它是Single Threaded。因此,在这种情况下退出循环似乎是不可能的。

这是一个代码,可以执行您想要的但不退出循环。

tell application "VisualBoyAdvance" to activate
repeat while true
    set mydate to current date
    repeat while ((current date) - mydate < 1)
        tell application "System Events" to keystroke (key code 124) -- right
    end repeat
    repeat while ((current date) - mydate < 1)
        tell application "System Events" to keystroke (key code 123) -- left
    end repeat
end repeat

如果你运行它会通过发送很多事件来冻结计算机。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.