![](/img/trans.png)
[英]How to detect Windows Logon event using OnSessionChange in C#
[英]How to detect Windows Logon event?
您如何檢測Windows登錄事件?
以及如何從Windows服務啟動用戶登錄?
我正在嘗試編寫一段代碼來檢測登錄事件並自動記錄另一個事件。
您如何檢測Windows登錄事件?
如果存在任何機制,則可能在WMI中。 有許多WMI類。 Win32_LogonSession
是Win32_LogonSession
; 通過Win32_LoggedonUser
與Win32_Account
相關)。 如果Win32_LogonSession
支持創建事件,那么這將是一種非常有效的方法。
以及如何從Windows服務啟動用戶登錄?
LogonUser
API允許創建一個新的用戶令牌,然后您可以將該令牌用於線程或進程。 使用CreateProcessWithLogonW
(及類似方法)可以創建用戶名和密碼,以使用其他帳戶(本質上是LogonUser
加上CreateProcessWithTokenW
)創建一個進程。
如果您正在開發Windows 2000 / XP,則可以使用JWA庫和Delphi創建Winlogon通知程序包。 他們使事情變得非常簡單:
http://blog.delphi-jedi.net/2008/05/27/winlogon-notification-package/
如果需要,還可以在CTRL + ALT + DEL屏幕上放置一個表單。 該表格在SYSTEM配置文件下運行。
您可以通過例如監視事件日志來檢測用戶登錄。 正如Richard所解釋的,您還可以從特定用戶開始一個過程。
但是,聽起來您正在嘗試執行其他操作,即交換已登錄用戶的登錄標識。 我認為這是不可能的。
Winlogon通知程序包已從Vista中刪除。
使用WTSRegisterSessionNotification或系統事件通知服務(SENS) 。 但是,您無法以交互方式登錄用戶,這將刪除登錄對話框並顯示用戶桌面。 這是通過winlogon使用某些注冊表項完成的。 LogonUser僅給您一個令牌,您可以使用該令牌來模擬用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.