récupérer le PID d'un processus

récupérer le PID d'un processus - VB/VBA/VBS - Programmation

Marsh Posté le 29-06-2005 à 08:12:55    

Bonjour,
 
Je souhaite lancer un prg avec VB sous un user et récupérer le PID du processus.
J'ai déja testé le code suivant:

Code :
  1. Set WshShell = CreateObject("WScript.Shell" )
  2. Set oExec = WshShell.Exec(applicationName)
  3. Wscript.Echo "PID de l'aapli lancée: " & oExec.ProcessID


mais je ne peux pas spécifier le user.
 
Ensuite j'ai utilisé ceci:

Code :
  1. RunAppUser=WshShell.Run("runas /user:" & user & " " & CHR(34) & applicationName & CHR(34), 2, FALSE)


mais la je n'arrive pas à récupérer le PID
 
J'ai également trouvé ceci:

Code :
  1. Const CommandLine = "notepad.exe"
  2. Const Computer    = "192.168.1.1"
  3. Const UserName    = "EU\st09346"
  4. Const Password    = "nounou"
  5. Dim lngRet
  6. lngRet = CreateProcess(CommandLine, Computer, UserName, Password)
  7. Function CreateProcess(szCommandLine, szComputer, szUserName, szPassword)
  8.    Dim objProcesses
  9.    Dim objLocator
  10.    Dim objService
  11.    Dim lngRet
  12.    Dim lngPID
  13.    Dim MesStr
  14.    Set WshNetwork = WScript.CreateObject("WScript.Network" )
  15.    WScript.Echo "Domain = " & WshNetwork.UserDomain
  16.    WScript.Echo "Computer Name = " & WshNetwork.ComputerName
  17.    WScript.Echo "User Name = " & WshNetwork.UserName
  18.  
  19.    Set objLocator = CreateObject("WbemScripting.SWbemLocator" )
  20.    Set objService = objLocator.ConnectServer(WshNetwork.ComputerName, , szUserName, szPassword)
  21. Set objService = objLocator.ConnectServer(, , szUserName, szPassword)
  22.  
  23.    Set objProcesses = objService.Get("Win32_Process" )
  24.    
  25.   lngRet = objProcesses.Create(szCommandLine, Null, Null, lngPID)
  26.    Set objProcesses = Nothing
  27.    Set objService   = Nothing
  28.    Set objLocator   = Nothing
  29.    CreateProcess = lngPID
  30. End Function


 
mais la la ligne  

Code :
  1. Set objService = objLocator.ConnectServer(WshNetwork.ComputerName, , szUserName, szPassword)


 
provoque le message suivant:
 

les références utilisateurs ne peuve,nt pas être utilisées pour des connexions locales

 
J'ai la containte suivante: je nepeux pas utilisé le nom de l'application pour rechercher son PID (en listant ts les processus et en recuperant leur nom puis en le comparant avec le nom du programme lancé).
 
 
Voila j'èspère avoir été assz clair.
 
Merci pour vos réponses.
 

Reply

Marsh Posté le 29-06-2005 à 08:12:55   

Reply

Marsh Posté le 29-06-2005 à 09:41:08    

VB ou VBA ?
je n'ai pas tout lu mais il me semble qu'il suffit d'utiliser CreateProcess pour récupérer le PID (et terminateprocess quand tu n'en as plsu besoin)...
 
(edit : je voulais dire "pour lancer l'application tout en récupérant le PID en même temps" )


Message édité par TotalRecall le 29-06-2005 à 09:43:58
Reply

Marsh Posté le 29-06-2005 à 10:18:33    

Oui mais comment faire pour récupéere le PID du processus (sans faire de recherche sur le nom) ?

Reply

Marsh Posté le 29-06-2005 à 10:48:59    

http://www.google.fr/search?q=createprocess+get+pid ?


Message édité par TotalRecall le 29-06-2005 à 10:49:07
Reply

Marsh Posté le 29-06-2005 à 11:00:43    

merci mais j'ai egalement une contrainte, celle de lancer le process sous un user. J'ai vu qu'il existe un createProcessAsUser mais je ne sais pas si je peux recuperer le pid avec.

Reply

Marsh Posté le 29-06-2005 à 11:19:25    

Reply

Marsh Posté le 29-06-2005 à 11:29:51    

Excuse moi mais je n'ai pas trouve d'exemple en en vbscript qui reponde a mon besoin

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed