2014-02-26 73 views
0

我有一個軟件可以在同一臺機器上運行我的多個用戶。出於某種原因,當一個用戶登錄時,另一個用戶登錄但在後臺(進程仍在運行,但用戶沒有主動登錄),在定時器上運行的任何需要網絡訪問的進程都會拋出錯誤。如何確定當前登錄哪個用戶?

我想知道是否有一種方法來確定多臺用戶登錄的Windows計算機上,哪個用戶是當前登錄的用戶。例如,登錄User A,啓動程序,然後繼續中斷。 User B使用Windows 7中的「切換用戶」登錄。然後User B也會啓動該程序。該程序仍在運行User A,但User A不再有權訪問網絡。有沒有辦法確定User B是活動用戶,所以我可以將錯誤處理添加到我的程序中,並停止用來自用戶A的消息填充錯誤日誌,指定的網絡名稱不再可用?

回答

0

我意識到我有一些能夠處理這種情況的其他情況,所以我只需在需要的地方添加相同的功能。對於任何人誰碰到這個帶有一個類似的需要,我加入主如下:

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任何地方,你需要確保該用戶是當前登錄的帳戶。

+0

現在我想到了,只有當用戶因計算機進入睡眠狀態而不活動時纔會起作用。有誰知道一種方式來處理,如果不同的用戶登錄? –