Seite 1 von 1
Gestartete Programme inklusive Pfad ermitteln
Verfasst: 10.12.2011 14:23
von Sicro
Ich suche eine Möglichkeit, gestartete Programme inklusive Pfad zu ermitteln.
Sämtliche Codes, die ich bisher fand, lieferten mir nur den Dateinamen zurück.
Re: Gestartete Programme inklusive Pfad ermitteln
Verfasst: 10.12.2011 14:28
von RSBasic
Was meinst du damit genau? Möchtest du den Pfad deiner eigenen Anwendung ermitteln?
Oder den Pfad einer Anwendung, die zuvor mit RunProgram() ausgeführt wurde?
Oder den Pfad eines Programms, welches bereits läuft?
(
http://www.rsbasic.de/aktualisierung/wi ... ssnamen.pb
http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb
Oder siehe PBOSL-Process-Code)
Re: Gestartete Programme inklusive Pfad ermitteln
Verfasst: 11.12.2011 11:39
von Sicro
Sorry, ich ging davon aus, dass ich mich eindeutig ausgedrückt habe.
Der Punkt 3 ist korrekt, wobei die Pfade von allen gestarteten Programmen ermittelt werden sollen.
Durch deine beiden Links konnte ich mir ein Code zusammenstellen, danke
Code: Alles auswählen
Procedure ScanRunningProcesses()
Protected Snapshot, Snapshot2, ProcessFound
Protected Process.PROCESSENTRY32, Module.MODULEENTRY32
Process\dwSize = SizeOf(PROCESSENTRY32)
Module\dwSize = SizeOf(MODULEENTRY32)
Snapshot = CreateToolhelp32Snapshot_(#TH32CS_SNAPPROCESS, 0)
If Snapshot
ProcessFound = Process32First_(Snapshot, Process)
While ProcessFound
Snapshot2 = CreateToolhelp32Snapshot_(#TH32CS_SNAPMODULE,Process\th32ProcessID)
If Snapshot2
If Module32First_(Snapshot2, @Module)
Debug PeekS(@Module\szExePath[0])
EndIf
CloseHandle_(Snapshot2)
EndIf
ProcessFound = Process32Next_(Snapshot, Process)
Wend
CloseHandle_(Snapshot)
EndIf
EndProcedure
winlogon.exe wird damit nicht aufgelistet, aber das ist mir auch nicht wichtig.
Wichtig: 64-Bit-Programme werden nur aufgelistet, wenn mit dem 64-Bit-Compiler kompiliert wurde.