ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Liste les processus, domaine et propriètaire   



L'auteur

P@trick
France France
Membre Simple
# 0000000036
enregistré le 18/10/2004

http://www.viadeo.com/fr/profile/patrick.gilles6
53 ans
GILLES Patrick
Fiche personnelle


Note des membres
pas de note

Contributions > 09 - Automation > Windows Scripting

Liste les processus, domaine et propriètaire
# 0000000841
ajouté le 08/12/2012 04:17:08 et modifié le 08/12/2012
consulté 5517 fois
Niveau débutant

Version(s) Foxpro :
VFP 9.0

Code source :
&& 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

strComputer = "." && todo getdomain
objWMIService = GetObject("winmgmts:" + "{impersonationLevel=impersonate}!\\" + strComputer + "\root\cimv2")

colProcessList = objWMIService.ExecQuery("Select * from Win32_Process")

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
       ? "Process " + objProcess.Name + " " + strUserDomain+ "\" +  strNameOfUser
  endtry
NEXT

Commentaires
le 13/02/2013, eddymaue a écrit :
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

le 13/02/2013, P@trick a écrit :
.e but final est de faire une classe, mais c'est plus lisible comme cela, tu peux ajouter le processID :

Property ProcessId As uint32 (read-only)

La propriété ProcessId contient l’identificateur de processus global qui peut être utilisé pour identifier un processus. La valeur est valide à partir du moment de la création du processus jusqu’à ce que le processus soit terminé.

et son papa :

Property ParentProcessId As uint32 (read-only)

La propriété ParentProcessId spécifie l’identificateur unique du processus qui a créé ce processus. Les numéros d’identificateur de processus sont réutilisés ; ils n’identifient donc un processus que pour le durée de vie de ce processus. Il est possible que le processus identifié par ParentProcessId soit terminé, et ParentProcessId peut donc ne pas référencer un processus en cours d’exécution. Il est aussi possible que ParentProcessId se réfère de manière incorrecte à un processus qui a réutilisé cet identificateur de processus. La propriété CreationDate peut être utilisée pour déterminer si le parent spécifié a été créé après que ce processus ait été créé.

CDT

Patrick


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2020.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3