【问题标题】:script auto correcting incorrectly when i compile and key down key up not working as well当我编译时脚本自动更正错误并且按下键不起作用
【发布时间】:2014-10-11 12:37:59
【问题描述】:

好吧,我的 AppleScript 编辑器目前有很多问题。目前,当我执行 Key up key down 序列时,它总是会键入字母 A。例如。

告诉应用程序“系统事件”

key down "u"

key up "u"

    delay 1

end tell

这将击键 A,我不知道为什么。

^ 这只是一个小问题,虽然我的大问题是我想在三个不同的视频游戏应用程序之间进行交换。它们都是同一个游戏的副本。以下是我的基本脚本的运行方式。

告诉应用程序“视频游戏”激活

tell application "System Events"
keystroke a bunch of stuff
end tell

告诉应用程序“视频游戏副本”激活

tell application "System Events"
keystroke a bunch of stuff
end tell

告诉应用程序“Video Game copy 2”激活

tell application "System Events"
keystroke a bunch of stuff
end tell

问题是当我尝试编译脚本时,应用程序名称总是更正为“视频游戏”。

关于如何防止它正确编译的任何想法?

我尝试输入一个假名,然后当 applescript 要求我查找应用程序时,我在浏览搜索框下单击正确的应用程序。它仍然会编译不正确。

非常感谢:)

【问题讨论】:

    标签: applescript


    【解决方案1】:

    keystroke 将获取要按下的键一次。它有助于告诉进程应用您正在告诉系统事件做某事,即

    tell application "System Events" to tell process "App Name" to keystroke "u"
    

    如果您想使用命令、选项、移位等来执行此操作,请使用:

    tell application "System Events" to tell process "App Name" to keystroke "u" using {command down, shift down, option down}
    

    【讨论】:

      【解决方案2】:

      AppleScript Editor 所做的不是“自动更正”,而是“编译”。它没有做错。您可以在 Mac 上更改应用程序的名称,并且不会破坏应用程序。即使您将其名称更改为“Video Game copy 1”,AppleScript Editor 仍然能够找到应用程序“Video Game”。这是一项功能,而不是错误。

      【讨论】:

      • 问题是我希望它分别处理每个应用程序,当我编译脚本时,无论我想要视频游戏副本 1 还是视频游戏副本 2,它总是选择名称“视频游戏”。所有 3 个视频游戏应用程序将同时运行,因此我需要分别处理它们,但脚本将始终只编译为其中一个
      【解决方案3】:

      您所描述的似乎是applescript 中的一个错误。这是一个小解决方法。我是为 jxa 编写的(用于 ui 自动化的 javascript),所以我认为你必须将它移植到 applescript:

      ObjC.import("Cocoa");
      
      function key(aiKeyCode, aiDelay)
      {
          var source = $.CGEventSourceCreate($.kCGEventSourceStateCombinedSessionState),
          keyDown = $.CGEventCreateKeyboardEvent(source, aiKeyCode, true),
          keyUp = $.CGEventCreateKeyboardEvent(source, aiKeyCode, false);
          $.CGEventPost($.kCGAnnotatedSessionEventTap, keyDown);
          delay(aiDelay);
          $.CGEventPost($.kCGAnnotatedSessionEventTap, keyUp);
      }
      

      【讨论】:

      • 知道如何在 AppleScript 中使用它吗?我不知道脚本的作用以及如何将其移植到 Applescript .. :(
      • @Snow 你能详细说明一下吗?我如何在 applescript 中使用它?
      • @Ignat 您可以在 AppleScript 编辑器的左上角选择 Applescript 和 Javascript。您可以集成脚本库。也许这个链接会有所帮助:developer.apple.com/library/archive/documentation/…
      猜你喜欢
      • 2013-11-19
      • 1970-01-01
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多