将密钥代码发送到应用程序而不先激活它?

时间:2011-02-14 19:23:11

标签: applescript

我正在尝试将空格键发送到应用程序而不先激活它。以下代码几乎可以实现我想要的功能,但它首先将应用程序带到前台。

tell application "X"
    activate
    tell application "System Events" to key code 49
end tell

5 个答案:

答案 0 :(得分:8)

我不认为您可以向非活动应用程序发送击键,但您可以在激活应用程序并为其执行代码后立即隐藏应用程序。但是,这会导致应用程序在隐藏之前暂时闪烁。

tell application "System Events"
    tell application "X" to activate
    key code 49
    set visible of process "X" to false
end tell

答案 1 :(得分:0)

之后如何停用它?

activate application "X"
tell application "System Events" to key code 49
activate me

答案 2 :(得分:0)

位置在屏幕外,以防止它在用户可以看到或降低其不透明度的地方闪烁。

答案 3 :(得分:0)

有一些调查课程。

  1. 如果您自己开发了该应用程序,则可以选择以下选项:

    *只是暴露了一个公共属性,并将其设置为您要发送它的密钥。 *让您的应用程序轮询文件夹,然后通过该文件发送说明。

  2. 使用某种类型的Windows API挂钩,您可以在不激活它的情况下控制应用程序。我非常肯定,如果我把它放在心上,我可以控制计算机上的任何东西。

  3. 简单来说,开箱即用,它不一定是你发送的按键,你只是想指示它做点什么。有很多选项接口编组,Interops,OLE,DDE,看起来我已及时出现在这个网站上了!

答案 4 :(得分:0)

发送击键基本上可以看作是使用键盘,但唯一的区别是需要按下的键已经预定义。围绕这个过程的其余过程并没有改变。这意味着在您实际向其发送击键之前,仍然需要打开并激活应用程序本身。

但是,根据应用程序的不同,可能会在应用程序的API中使用某些Applescript函数向应用程序发送不同的输入,而不必先激活它。以Messages API为例:

tell application "Messages"
      set theBuddy to buddy "someone@mac.com" of service "iMessage"
      send "Hi there" to theBuddy
end tell