Genymus
18-12-2009, 19:58
Salve, ho bisogno di trovare il nome utente dei processi attivi (tipo task manager)...
Fino a poco tempo fa usavo il seguente pezzo di codice:
Dim qs As New System.Management.ObjectQuery("SELECT * FROM Win32_Process WHERE ProcessID = '" & Id & "'")
Dim os As New System.Management.ManagementObjectSearcher(qs)
Dim mo As System.Management.ManagementObject
Dim ar(1) As String
If (os.Get.Count = 0) Then
Return ("Non Disponibile")
Else
For Each mo In os.Get
mo.InvokeMethod("GetOwner", DirectCast(ar, Object()))
Next
Return Trim(ar(0))
End If
Subito abbandonato perchč su un timer, eseguito quindi in modo ripetitivo, rallentava le funzionalitą dell'applicazione annullandone gli effetti.
č possibile che sul namespace "System.Diagnostic" non sia presente la funzione "getUsername" o una simile???
Sperando ringrazio anticipatamente.
Genymus
Ps: a chi il codice sopra possa andare bene e non avesse troppe pretese, ricordo che bisogna aggiungere il riferimento a "System.management" (Progetto > Aggiungi riferimento > .NET > System.management).
Fino a poco tempo fa usavo il seguente pezzo di codice:
Dim qs As New System.Management.ObjectQuery("SELECT * FROM Win32_Process WHERE ProcessID = '" & Id & "'")
Dim os As New System.Management.ManagementObjectSearcher(qs)
Dim mo As System.Management.ManagementObject
Dim ar(1) As String
If (os.Get.Count = 0) Then
Return ("Non Disponibile")
Else
For Each mo In os.Get
mo.InvokeMethod("GetOwner", DirectCast(ar, Object()))
Next
Return Trim(ar(0))
End If
Subito abbandonato perchč su un timer, eseguito quindi in modo ripetitivo, rallentava le funzionalitą dell'applicazione annullandone gli effetti.
č possibile che sul namespace "System.Diagnostic" non sia presente la funzione "getUsername" o una simile???
Sperando ringrazio anticipatamente.
Genymus
Ps: a chi il codice sopra possa andare bene e non avesse troppe pretese, ricordo che bisogna aggiungere il riferimento a "System.management" (Progetto > Aggiungi riferimento > .NET > System.management).