我有一个软件可以在同一台机器上运行我的多个用户。出于某种原因,当一个用户登录,而另一个用户登录但后台(进程仍在运行,但用户未主动登录)时,在需要网络访问的计时器上运行的任何进程都会抛出错误。
我想知道是否有办法在登录多个用户的Windows计算机上确定哪个用户是当前登录的用户。例如,User A
已登录,启动程序,然后继续休息。 User B
使用Windows 7中的“切换用户”登录。User B
然后也启动该程序。该计划仍在User A
运行,但User A
无法再访问该网络。有没有办法确定User B
是活动用户,所以我可以将错误处理添加到我的程序中,并停止使用来自用户A的消息填写错误日志,指出网络名称不再可用?< / p>
答案 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
,确保该用户是当前登录的帐户。