2009-09-19 74 views

回答

2

如何检测Windows登录事件?

如果存在任何机制,它很可能在WMI中。有许多WMI类。值得注意的是Win32_LogonSession;这与Win32_Account通过Win32_LoggedonUser有关)。如果创建事件支持Win32_LogonSession那么这将是一个非常有效的方法。

而您如何从Windows服务启动用户登录?

LogonUser API允许创建一个新的用户令牌,然后可以使用该令牌的线程或进程。使用CreateProcessWithLogonW(以及类似的)允许创建用户名和密码以在不同的账户下创建进程(实质上LogonUserCreateProcessWithTokenW)。

1

您可以通过监控事件日志来检测用户登录。正如理查德解释的那样,你也可以开始一个特定用户的过程。

但是,听起来好像你正在尝试做其他事情,即交换登录用户的登录身份。这我觉得是不可能的。

1

Winlogon通知包已从Vista中删除。

使用WTSRegisterSessionNotification或System Event Notification Service (SENS)。 但是,您无法以交互方式登录用户s.t.登录对话框将被删除,并显示用户桌面。这由winlogon使用某些注册表项完成。 LogonUser只是给你一个令牌,可以用来模拟用户。