我可以为 Adob​​e AIR 应用程序分配全局热键吗?

Posted

技术标签:

【中文标题】我可以为 Adob​​e AIR 应用程序分配全局热键吗?【英文标题】:Can I assign a global hotkey to an Adobe AIR app? 【发布时间】:2010-09-14 07:01:11 【问题描述】:

是否可以为 Adob​​e AIR 应用程序中的特定功能分配全局热键,即无论应用程序是否处于活动状态,应用程序功能都会响应热键(它当然必须在运行,但只能在系统托盘中运行)。

【问题讨论】:

【参考方案1】:

我认为 Adob​​e AIR 本身不可能做到这一点。我能想到的唯一方法:

    安装第 3 方热键应用程序(如 AutoHotkey 或 HotKeyBind) 配置热键应用程序以使 CTRL+ALT+Q 启动 "c:\programs\thvo42\coolapp.exe --hotkey q" 在您的 AIR 应用程序中,注册 NativeApplication.invoke 事件,并观察诸如“--hotkey q”之类的参数以了解 Q 热键被按下,然后采取相应的行动。

当然,这有点麻烦,也许通过一些黑客攻击,您可以将其全部整合到一个安装文件中。

【讨论】:

谢谢,现在应该可以了。关于invoke的关键是:“当一个应用程序被第二次调用时,该应用程序的另一个实例并没有启动。相反,第一个实例接收到一个额外的invoke事件。” (来源:上面链接的 Adob​​e AIR 文档)【参考方案2】:

来自参考手册:

要全局监听关键事件,请在舞台上监听捕获和目标或冒泡阶段。

【讨论】:

全局在 AIR 应用程序中,还是整个桌面?我很确定舞台只有在 AIR 应用程序处于焦点时才会响应按键。【参考方案3】:

SWFKit 为您的 flash/flex 电影创建一个包装器,并允许访问系统 DLL 和其他好东西,但不幸的是它会导出为 .exe,因此只有 Windows 而没有 AIR。

ASFAIK,单独使用AIR是不支持的。

【讨论】:

以上是关于我可以为 Adob​​e AIR 应用程序分配全局热键吗?的主要内容,如果未能解决你的问题,请参考以下文章

将 Flex 转换为 Adob​​e Air

我可以在用于桌面 AIR 应用程序的 Adob​​e Flex 项目中使用诸如 turn.js 之类的 javascript 库吗?

多次启动 Adob​​e AIR 应用程序

带有嗅探器代理的 Adob​​e Air?

使用 Adob​​e AIR 下载文件

C++/Qt vs Adob​​e AIR [关闭]