如何确定当前登录的用户?

时间:2014-02-26 19:48:19

标签: vb.net windows winforms active-directory

我有一个软件可以在同一台机器上运行我的多个用户。出于某种原因,当一个用户登录,而另一个用户登录但后台(进程仍在运行,但用户未主动登录)时,在需要网络访问的计时器上运行的任何进程都会抛出错误。

我想知道是否有办法在登录多个用户的Windows计算机上确定哪个用户是当前登录的用户。例如,User A已登录,启动程序,然后继续休息。 User B使用Windows 7中的“切换用户”登录。User B然后也启动该程序。该计划仍在User A运行,但User A无法再访问该网络。有没有办法确定User B是活动用户,所以我可以将错误处理添加到我的程序中,并停止使用来自用户A的消息填写错误日志,指出网络名称不再可用?< / p>

1 个答案:

答案 0 :(得分:0)

我意识到我有一些东西可以处理其他情况,所以我只需要在需要的地方添加相同的功能。对于遇到类似需求的人,我在主Form_Load中添加了以下内容:

Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    AddHandler SystemEvents.SessionSwitch, AddressOf AccountSwitch
    ......
End Sub

AccountSwitch子例程:

Private Sub AccountSwitch(ByVal sender As Object, ByVal e As SessionSwitchEventArgs)
    If e.Reason = SessionSwitchReason.SessionLock Then
        _flgLocked = True
    Else
        _flgLocked = False
    End If
End Sub

现在,只需检查您需要的_flgLocked,确保该用户是当前登录的帐户。