2011-03-29 67 views
0

我正在開發Flex空氣應用程序。我必須在空氣應用程序中實現熱鍵功能。通過窗口熱鍵打開空氣應用程序

例如,無論何時用戶按下任意兩個按鍵,如ctr和S鍵,即可打開柔性空氣應用程序。 和每當用戶按任何兩個鍵,如ctr和q鍵,然後關閉Flex空氣應用程序。

它可能在flex?

謝謝

+0

stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown)。此代碼只適用於專注於應用程序。我有商店應用程序在系統托盤中,但是當我使用任何熱鍵它不起作用。如果有任何其他方式讓我知道。謝謝 – Nidhi 2011-03-30 06:14:32

回答

2

對於未運行的程序來說,不可能攔截關鍵命令。因此,您無法告訴應用程序啓動某個關鍵命令;無論程序是否需要運行,或者您需要將該鍵盤命令設置爲操作系統(例如,您可以在屬性面板的Windows中執行此操作)。

另一個命令很簡單,只要監聽KeyDown事件並檢查你的組合是否被按下;如果是,退出應用程序。

+0

爲了擴大這個聽取關鍵事件的答案,請執行'stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);'這將返回一個'KeyboardEvent',它有一個keyCode和一個charCode以及若干個標記,用於如果ctrl/alt/shift被按下。 – 2011-03-29 15:41:16

1

不是我所知。

對於這種功能,您需要守護進程或後臺進程。因爲在AIR中不可能在未聚焦時監聽密鑰(別名密鑰記錄器),所以它必須是本機應用程序(針對不同操作系統的不同版本)。

另一種方法是以某種方式在操作系統配置中設置關鍵筆劃 - 但是再次,這在不同的操作系統上會有很大的不同,並且它不被AIR支持 - 也需要本地進程。

如果你想簡化它,除非你真的想投入大量的時間來編寫這些過程,每個不同的操作系統都有一個過程。

+0

stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);它將返回一個KeyboardEvent,它有一個keyCode和一個charCode以及若干個標誌,用於如果ctrl/alt/shift是這個代碼在關注應用程序時工作 – Nidhi 2011-03-30 06:06:12

+0

我不認爲捕捉空中的鍵碼是可能的。首先是安全問題。 Adobe做了很多基於安全的限制。您將需要一個後臺應用程序,這些應用程序監聽密鑰,一些守護程序。它聽起來像一個鍵盤記錄器。 Flex只有在獲得焦點時纔會獲得鍵盤事件。 – midhunhk 2011-05-25 12:13:55