Pagina 1 di 1

Lista dei processi in esecuzione + WorkDir

MessaggioInviato: mer lug 13, 2011 7:03 am
da Hpmezzo
Ragazzi mi servirebbe qualcosa (in qualsiasi linguaggio) che mi mostri la lista di tutti i processi in esecuzione (compreso la directory dove essi sono situati). Un po' come HiJackThis che mostra i percorsi che attualmente sono eseguiti dalla macchina e mostra anche dove sono colllocati (la directory di lavoro). Comandi DOS ad esempio tasklist mi mostra solo il nome dell'immagine (del processo) e non la directory. Avete qualche idea su come risolvere questo problema? [:)] Se esiste un comando anche in VB.net... Boh non so aiutatemi per favore! [:D]

Re: Lista dei processi in esecuzione + WorkDir

MessaggioInviato: mer lug 13, 2011 11:05 am
da Berga95

Re: Lista dei processi in esecuzione + WorkDir

MessaggioInviato: gio lug 14, 2011 7:35 am
da Hpmezzo
Adesso proviamo xD Speriamo bene...

Re: Lista dei processi in esecuzione + WorkDir

MessaggioInviato: gio ago 18, 2011 12:04 pm
da Silver Black
Hpmezzo ha scritto:Ragazzi mi servirebbe qualcosa (in qualsiasi linguaggio) che mi mostri la lista di tutti i processi in esecuzione (compreso la directory dove essi sono situati). Un po' come HiJackThis che mostra i percorsi che attualmente sono eseguiti dalla macchina e mostra anche dove sono colllocati (la directory di lavoro). Comandi DOS ad esempio tasklist mi mostra solo il nome dell'immagine (del processo) e non la directory. Avete qualche idea su come risolvere questo problema? [:)] Se esiste un comando anche in VB.net... Boh non so aiutatemi per favore! [:D]


Usa queste API:
EnumProcess per la lista dei task
EnumProcessModules per informazioni su un preciso task
GetModuleFilenameEx per il nome completo di percorso del modulo

Nel nome completo avrai il percorso.

Es. in Delphi:

Codice: Seleziona tutto
..
  [b]EnumProcesses[/b](@PIDArray, SizeOf(PIDArray), cb);
  ProcCount := cb div SizeOf(DWORD);
  for i := 0 to ProcCount - 1 do begin
    hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PIDArray[I]);
    if (hProcess <> 0) then begin
      [b]EnumProcessModules[/b](hProcess, @hMod, SizeOf(hMod), cb);
      [b]GetModuleFilenameEx[/b](hProcess, hMod, ModuleName, SizeOf(ModuleName));
      CloseHandle(hProcess);
    end;
  end;
..

Re: Lista dei processi in esecuzione + WorkDir

MessaggioInviato: gio ago 18, 2011 12:57 pm
da ste_95
Fa molto di più di quello che chiedi, ma è giusto per te [:)]
http://www.gmer.net/

Re: Lista dei processi in esecuzione + WorkDir

MessaggioInviato: mer ago 24, 2011 6:52 pm
da Hpmezzo
Risolto :)