回答
當用戶按下並保持電源鍵時,不會調用任何方法。這直接在硬件中處理,甚至不會被路由到操作系統,更不用說您的應用程序 - 這相當於拉動電源線。
最好的辦法是創建一個「乾淨的關閉」用戶首選項或臨時文件,您的應用程序將作爲其正常關機程序的一部分將其刪除。當你的應用程序啓動時,它可以檢查它是否正常關閉,或者是否已經從其下拉出地毯。
哦,既然這是一個信息亭 - 不要讓用戶從開始的物理訪問電源開關。有時最簡單的解決方案是最好的!
你不知道。
從Apple's Cocoa Event Handling Guide:
注意:降低系統陷阱 水平和 事件流中的早期處理一些事件。這些事件絕不會被路由到Cocoa應用程序的 。這些事件由保留鍵 或按鍵組合(如電源 和媒體彈出鍵)生成。
你可以讓你的應用程序執行某些操作和/或防止applicationShouldTerminate
關閉,有些覆蓋在Graceful Application Termination文檔頁面。儘管如此,這不會僅僅是響應關鍵事件。您可以使用NSApplicationPresentationDisableSessionTermination
標誌來禁用註銷和關閉。
這些都不會通過按住電源按鈕來禁用關機。這就像拉動電源線一樣,軟件中沒有任何東西可以阻止它。 – 2011-03-22 02:45:56
好點。我一定錯過了「並且持有」這個問題的一部分。 – 2011-03-22 02:51:27
謝謝你們。看來我沒有太多辦法來阻止硬件關閉。這有點合理,如果系統嚴重掛斷,我想這是最後的辦法。 – Tibidabo 2011-03-22 04:51:55
- 1. 可可檢測鍵按下
- 2. 如何檢測是否有任何按鍵被按下
- 3. 檢測是否按下Shift鍵
- 4. 如何檢測Windows按鍵是否被按下?
- 5. 如何檢測某個特定按鍵是否被按下?
- 6. 如何檢測Java 2d中的按鍵是否被按下?
- 7. 檢測BlackBerry按鍵球/按鍵是否被按下?
- 8. macOS:是否可以檢測到在Mac鍵盤上按下「fn」鍵的時間?
- 9. 如何檢測在Actionscript 3中是否按下刪除鍵?
- 10. 如何檢測在WPF中是否按下散列鍵(#)?
- 11. 如何檢測OS X上是否按下了某個鍵?
- 12. JavaFX:如何檢測鍵是否被按下?
- 13. 如何檢測node.js中是否按下了某個鍵?
- 14. 檢測窗口是否是可可中的關鍵窗口
- 15. 檢測何時按下@鍵
- 16. 如何檢測mediacontroller是否可見?
- 17. 如何檢測類是否可注入
- 18. 如何檢測mod_rewrite是否可用?
- 19. 是否有可能檢測到輸入鍵被按下不使用JavaScript
- 20. 是否可以檢查是否完成按鈕被按下
- 21. 如何檢測是否有任何鍵盤功能鍵被按下?
- 22. Emu8086檢查按鍵是否按下
- 23. 如何使用ConsoleKeyInfo檢查是否有2個可能的鍵被按下?
- 24. 檢測是否裝配可
- 25. jQuery - 檢測按鈕是否被按下
- 26. 如何檢測按下Shift鍵?
- 27. 是否有可能關閉屏幕(就像按下電源按鈕)上android
- 28. 使用OpenGL/GLUT如何檢測兩個按鍵是否同時按下?
- 29. 掛機電源鍵和檢測音量鍵在屏幕關閉時按下
- 30. 是否可以在javascript中檢測電池供電的設備?
謝謝我正在考慮這個問題。儘管主要目的是啓動警報以阻止用戶關閉計算機。 – Tibidabo 2011-03-22 04:53:35