【问题标题】:open air application by window hotkeys通过窗口热键进行露天应用
【发布时间】:2011-03-29 12:58:45
【问题描述】:

我正在开发 flex air 应用程序。我必须在 air 应用程序中实现热键功能。

例如,每当用户按下任意两个键(如 ctr 和 S 键)时,都会打开 flex air 应用程序。 并且当用户按下任意两个键(如 ctr 和 q 键)时,关闭 flex air 应用程序。

flex 可以吗?

谢谢

【问题讨论】:

  • stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown)。此代码仅在关注应用程序时才有效。我将应用程序存储在系统托盘中,但是当我使用任何热键时它不起作用。如果有任何其他方式让我知道。谢谢

标签: apache-flex actionscript-3 air


【解决方案1】:

未运行的程序不可能拦截关键命令。因此,您不能告诉应用程序启动某些关键命令;程序需要已经运行,或者您需要将该键命令设置为操作系统(例如,您可以在 Windows 的属性面板中执行此操作)。

另一个命令相当简单,只需监听 KeyDown 事件并检查您的组合是否被按下;如果是,请退出应用程序。

【讨论】:

  • 要扩展此答案以侦听关键事件,请执行 stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); ,它将返回一个 KeyboardEvent ,其中包含一个 keyCode 和一个 charCode 以及如果 ctrl/alt/shift 被按下的几个标志.
【解决方案2】:

据我所知。

对于这种功能,您需要一个守护进程或后台进程。因为在 AIR 中,无法在未集中注意力时监听键(别名键记录器),所以它必须是本机应用程序(不同操作系统的不同版本)。

另一种方法是在操作系统配置中以某种方式设置击键 - 但话又说回来,这在不同的操作系统上非常不同,AIR 不支持它 - 也需要本机进程。

如果你想让这件事变得简单,那是不可能的,除非你真的想投入大量时间来编写这些进程,每个不同的操作系统都有一个。

【讨论】:

  • stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);这将返回一个 KeyboardEvent,它有一个 keyCode 和一个 charCode 以及几个标志,如果 ctrl/alt/shift 是这个代码在关注应用程序时有效
  • 我认为在空中捕捉键码是不可能的。首先是安全问题。 adobe 确实提出了很多基于安全性的限制。您将需要有一个后台应用程序来监听键码,一些守护程序。听起来确实像键盘记录器。 Flex 只有在获得焦点时才会获取键盘事件。
猜你喜欢
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-25
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多