2011-03-22 65 views
1

我想弄清楚當用戶按下鍵盤上的電源鍵時如何檢測。如何檢測電源鍵是否按下可可?

我正在開發自助服務終端應用程序,我想在用戶想要強制關閉計算機時按住電源鍵運行例程。

預先感謝您。

回答

1

當用戶按下並保持電源鍵時,不會調用任何方法。這直接在硬件中處理,甚至不會被路由到操作系統,更不用說您的應用程序 - 這相當於拉動電源線。

最好的辦法是創建一個「乾淨的關閉」用戶首選項或臨時文件,您的應用程序將作爲其正常關機程序的一部分將其刪除。當你的應用程序啓動時,它可以檢查它是否正常關閉,或者是否已經從其下拉出地毯。

哦,既然這是一個信息亭 - 不要讓用戶從開始的物理訪問電源開關。有時最簡單的解決方案是最好的!

+0

謝謝我正在考慮這個問題。儘管主要目的是啓動警報以阻止用戶關閉計算機。 – Tibidabo 2011-03-22 04:53:35

1

你不知道。

Apple's Cocoa Event Handling Guide

注意:降低系統陷阱 水平和 事件流中的早期處理一些事件。這些事件絕不會被路由到Cocoa應用程序的 。這些事件由保留鍵 或按鍵組合(如電源 和媒體彈出鍵)生成。

你可以讓你的應用程序執行某些操作和/或防止applicationShouldTerminate關閉,有些覆蓋在Graceful Application Termination文檔頁面。儘管如此,這不會僅僅是響應關鍵事件。您可以使用NSApplicationPresentationDisableSessionTermination標誌來禁用註銷和關閉。

+0

這些都不會通過按住電源按鈕來禁用關機。這就像拉動電源線一樣,軟件中沒有任何東西可以阻止它。 – 2011-03-22 02:45:56

+0

好點。我一定錯過了「並且持有」這個問題的一部分。 – 2011-03-22 02:51:27

+0

謝謝你們。看來我沒有太多辦法來阻止硬件關閉。這有點合理,如果系統嚴重掛斷,我想這是最後的辦法。 – Tibidabo 2011-03-22 04:51:55

相關問題