Hi,
Ach so, dann kann ich ja lange Suchen
Dann zu deinem Problem , mit eine wenig MSDN und API hat es dann tatsächlich geklappt , die Namen rauszubekommen. Du mußt das über die Token lösen, also mit GetTokenInformation die Infos holen und dann dir mittels AllocateAndInitializeSid die Sid besorgen. Über LookupAccountSid bekommst du dann weitere Infos diese Funktion mußt Du aber zweimal hintereinander aufrufen, da Sie dir beim ersten mal nur die BufferSize zurückgibt.
Ach so, ich weiß ja nicht wie Du dir die Processe besorgst, doch wenn Du nur die ProcessID hast, dann mußt Dir noch das Handle von diesem Process holen
über OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, 0, ProcessID) bekommst DU dann das Handle zurück geliefert.
Und da ich ja gar nicht so bin .... Hier der CODE
Private Const TOKEN_READ As Long = &H20008
Private Const SECURITY_BUILTIN_DOMAIN_RID As Long = &H20&
Private Const SECURITY_NT_AUTHORITY As Long = &H5
Private Const PROCESS_QUERY_INFORMATION As Long = 1024
Private Const PROCESS_VM_READ As Long = 16
Private Const DOMAIN_ALIAS_RID_USERS = &H221
Private Const TokenUser = 1
Private Type SID_IDENTIFIER_AUTHORITY
Value(6) As Byte
End Type
Private Type SID_AND_ATTRIBUTES
Sid As Long
Attributes As Long
End Type
Private Type TOKEN_GROUPS
GroupCount As Long
Groups(500) As SID_AND_ATTRIBUTES
End Type
Private Type TOKEN_USER
User As SID_AND_ATTRIBUTES
End Type
' falls DU noch mehr infos brauchst .. das kommt so aus der MSDN und
' wurde dann entsprechend in VB Umgewandelt
'typedef struct _TOKEN_USER { SID_AND_ATTRIBUTES User;
'} TOKEN_USER, *PTOKEN_USER;
Private Declare Function LookupAccountSid Lib "advapi32.dll" Alias _
"LookupAccountSidA" (ByVal lpSystemName As String, ByVal Sid As Long, ByVal _
name As String, cbName As Long, ByVal ReferencedDomainName As String, _
cbReferencedDomainName As Long, peUse As Long) As Long
Private Declare Function AllocateAndInitializeSid Lib "advapi32.dll" ( _
pIdentifierAuthority As SID_IDENTIFIER_AUTHORITY, ByVal nSubAuthorityCount As _
Byte, ByVal nSubAuthority0 As Long, ByVal nSubAuthority1 As Long, ByVal _
nSubAuthority2 As Long, ByVal nSubAuthority3 As Long, ByVal nSubAuthority4 As _
Long, ByVal nSubAuthority5 As Long, ByVal nSubAuthority6 As Long, ByVal _
nSubAuthority7 As Long, lpPSid As Long) As Long
Private Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal _
ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function GetTokenInformation Lib "advapi32.dll" (ByVal _
TokenHandle As Long, ByVal TokenInformationClass As Long, TokenInformation As _
Any, ByVal TokenInformationLength As Long, ReturnLength As Long) As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Sub FreeSid Lib "advapi32.dll" (pSid As Any)
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As _
Long
Public Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccessas _
As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long Jetzt kommt die Funktion ....
Nachricht zu lang.... 
Gru?
Ralf
|