![]() ATOUTFOX COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO Visual FoxPro : le développement durable |
|||||||||||||
|
|||||||||||||
Liste les processus, domaine et propriètaire
|
|||||||||||||
|
|||||||||||||
www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2025. |
j'ai placé ca dans un curseur, qu'est-ce que tu en penses ?
&& AtoutFox P@trick ListDomainOwnerProcess.prg
&& Liste les processus systemes, leur domaine et proprietaire
&& todo a class
&& AtoutFox ou P@trick ne peuvent être responsable des dommages causés par ce programme
Local strComputer , objWMIService , colProcessList
strComputer = "." && todo getdomain
objWMIService = Getobject("winmgmts:" + "{impersonationLevel=impersonate}!\\" + strComputer + "\root\cimv2")
colProcessList = objWMIService.ExecQuery("Select * from Win32_Process")
Local lcProcess As String ,;
objProcess As Object ,;
lnName As Integer ,;
lnNameOfUser As Integer
Store 0 To m.lnName,m.lnNameOfUser
m.lcProcess=""
Create Cursor Process (Name c(32),userdomain c(32), NameOfUser c(32))
For Each objProcess In colProcessList
Local strNameOfUser As String
Local strUserDomain As String
strNameOfUser =Space(128)
strUserDomain =Space(32)
Try
colProperties = objProcess.GetOwner(@strNameOfUser,@strUserDomain)
Catch
&& certains process n' ont pas d'OWNER et provoquent une erreur ole donc on contourne le probléme avec un try ....
Finally
lnName = Max( Len(m.objProcess.Name),Len(Process.name))
lnNameOfUser =Iif(Len( Alltrim(strNameOfUser))=0,Len(process.NameOfUser), Max( Len( Alltrim(strNameOfUser) ) , Len( Process.NameOfUser )))
If lnName # Len(Process.Name) Or lnNameOfUser # Len( Process.NameOfUser ) or Reccount()=0
Alter Table Process Alter Column Name c ( m.lnName )
Alter Table Process Alter Column NameOfUser c ( m.lnNameOfUser )
Endif
Insert Into Process Values ( objProcess.Name , strUserDomain , strNameOfUser )
Endtry
Next
Browse last