Prozess gestartet von...

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Prozess gestartet von...

Beitrag von Jilocasin »

Hi :)
Hab mal wieder ein kleines Problem.. ich würde gern herausfinden, bei Eingabe einer Prozess-ID, von welchem Prozess (ID, oder Filename.. mir egal) dieser gestartet wurde. Es scheint ja irgendwo abgelegt zu sein, da so Kram wie Security TaskMan dies auch auslesen können.

Hoffe auf Hilfe.. :D
Bild
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Re: Prozess gestartet von...

Beitrag von Thorium »

Jilocasin hat geschrieben:Hi :)
Hab mal wieder ein kleines Problem.. ich würde gern herausfinden, bei Eingabe einer Prozess-ID, von welchem Prozess (ID, oder Filename.. mir egal) dieser gestartet wurde. Es scheint ja irgendwo abgelegt zu sein, da so Kram wie Security TaskMan dies auch auslesen können.

Hoffe auf Hilfe.. :D
Das ist die Parent PID, die du suchst.
Schau dir mal den Source an: http://www.purebasic.fr/german/viewtopic.php?t=12401
Da wird die durch enumerieren der Prozesse ermittelt.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Okay, danke vielmals <)

Wäre es auch noch möglich die Startparameter zu ermitteln?

Das ParentPID hab ich jetzt mal so umgebastelt:

Code: Alles auswählen

Procedure GetProcessParentID(PID)
  ProcessEntry.PROCESSENTRY32

  ProcessEntry\dwSize = SizeOf(ProcessEntry)

  ProcessSnapHandle.l = CreateToolhelp32Snapshot_(#TH32CS_SNAPPROCESS,0)
  RetVal.l = Process32First_(ProcessSnapHandle, ProcessEntry)
    
  While RetVal
    If ProcessEntry\th32ProcessID = PID
      CloseHandle_(ProcessSnapHandle)
      ProcedureReturn ProcessEntry\th32ParentProcessID
    EndIf
    
    RetVal = Process32Next_(ProcessSnapHandle, ProcessEntry)
  Wend
  
  CloseHandle_(ProcessSnapHandle)
  
  ProcedureReturn 0
EndProcedure
Bild
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Jilocasin hat geschrieben: Wäre es auch noch möglich die Startparameter zu ermitteln?
Hm, schwierig. Soweit ich weis kann man nur die Startparameter des eigenen Prozesses ermitteln. Das heisst man müsste Code in den Parent Prozess injizieren, der dort die Startparameter ermittelt und dann an den Child Prozess übermittelt. Vieleicht gibts aber auch eine einfachere Möglichkeit.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten