什麼樣的Windows應用程序可以接收系統事件? 我的意思是像用戶關閉的事件。 Windows窗體,WPF應用程序和Windows服務可以做到這一點。但我不知道有其他人。什麼樣的Windows應用程序可以接收系統事件?
回答
基於Windows窗體和WPF的圖形應用程序原生地監聽一些Windows API事件。命令行和其他類型可以訂閱這些事件,但您必須編寫該代碼。
UPDATE:
這裏是接收來自託管應用程序的Win32 API事件的文章:
http://www.codeproject.com/KB/cs/interopevents.aspx
請注意,您的應用程序必須運行接收的事件,因此,如果你想從控制檯應用程序執行此操作,您的應用程序必須啓動並保持運行狀態,直到某個外部信號導致它關閉。
請您引導我參加一個教程或關於如何使用控制檯應用程序完成的任務?非常感謝你! – 2010-10-19 16:14:49
+1爲他做OP的研究。 – 2010-10-19 17:10:05
@Wonko_the_Sane那麼我應該問什麼樣的問題呢?你很確定像你一樣判斷你的人!你是一位出色的開發人員!恭喜! – 2010-10-20 06:37:29
像這樣的事件需要一個窗口和一個消息循環。該窗口由SystemEvents處理,消息循環自動存在於WPF或winforms應用程序中。
如果您在其他類型的應用程序中使用它,例如服務或控制檯模式應用程序,則可以創建專用線程。您將看到該線程返回到調試器(Debug + Windows + Threads),名稱爲「.NET SystemEvents」。當您的應用程序在非交互式Windows工作站(如服務)中運行或者您的Main方法沒有[STAThread]屬性(如控制檯應用程序)時,會發生這種情況。
代碼中沒有什麼特別需要訂閱事件。但要小心你的事件處理程序將在這個幫助程序線程上運行,與鎖關鍵字同步可能是必要的。
- 1. OSX - Qt應用程序在接收系統事件時崩潰QEvent :: FileOpen
- 2. Adobe AIR應用程序從本機Windows應用程序接收回事件
- 3. 爲什麼'系統'不應該用於Windows特定的應用程序
- 4. android4.4的系統應用程序不能接收廣播BOOT_COMPLETED
- 5. Windows Store應用程序 - 系統信息
- 6. Windows系統托盤應用程序
- 7. MFC應用程序可以在Windows以外的操作系統上運行嗎?
- 8. 爲什麼應用程序沒有收到應用程序關閉事件?
- 9. 可可應用程序系統重啓
- 10. 什麼樣的宏對應於linux中的什麼樣的文件系統
- 11. 我們可以爲iPhone開發什麼樣的應用程序?
- 12. 什麼樣的應用程序,我可以開發Android穿
- 13. 現代UI應用程序可以編輯系統文件嗎?
- 14. 什麼可可應用程序正在使用AquaticPrime許可系統?
- 15. 您可以使用什麼來讓應用程序能夠接收SMS消息?
- 16. 您可以禁用.NET應用程序的系統聲音嗎?
- 17. 運行中的Java應用程序能否從操作系統接收註冊的文件類型事件?
- 18. C程序收銀系統
- 19. Java WebStart:爲什麼應用程序卷不適應系統卷
- 20. 從我們的應用程序接收到什麼樣的數據來亂舞?
- 21. ElasticBeanstalk系統事件和我的應用程序日誌
- 22. 系統在以下程序中調用的是什麼?
- 23. 什麼是Windows操作系統中的驅動程序堆棧?
- 24. 什麼是安裝Perl Web應用程序的最佳系統?
- 25. Qt Mac App Store應用程序拒絕接收文件系統請求
- 26. Mac應用可以存儲應用程序訪問本地文件系統嗎?
- 27. 在傳統Win32應用程序中實現COM事件接收器
- 28. 寫入應用程序事件源是否可以接受?
- 29. 我應該需要什麼樣的Mac驅動程序的建立,以攔截文件系統?
- 30. 它是什麼樣的控制?在Windows商店應用程序
什麼樣的封閉事件? – 2010-10-19 16:02:56
是否有特定類型的Windows應用程序試圖捕獲系統事件? – 2010-10-19 16:04:02
我已經使用Windows窗體應用程序和WPF應用程序完成了此操作。我在Vista上使用WPF版本,在Win 7上使用Windows Forms版本時遇到了一些問題;但那是另一回事。我只是想知道是否可以在C#中使用(即)控制檯應用程序?謝謝 – 2010-10-19 16:22:53