Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Duda sobre procesos en delphi (https://www.clubdelphi.com/foros/showthread.php?t=60245)

Suriu 25-09-2008 16:45:38

Duda sobre procesos en delphi
 
:confused:Hola foro, quisiera que alguien me diera una luz de como puedo saber la direccion de donde se ejecuta un proceso cualquiera.
Gracias de antemano por la ayuda que me puedan dar....

egostar 25-09-2008 18:29:56

Cita:

Empezado por Suriu (Mensaje 316264)
:confused:Hola foro, quisiera que alguien me diera una luz de como puedo saber la direccion de donde se ejecuta un proceso cualquiera.
Gracias de antemano por la ayuda que me puedan dar....

Hola Suriu, podrias ser mas claro con tu pregunta?, no te limites en cuanto espacio, de esa forma tendrás una mejor respuesta.

Salud OS

Suriu 26-09-2008 01:10:28

Cita:

Empezado por egostar (Mensaje 316310)
Hola Suriu, podrias ser mas claro con tu pregunta?, no te limites en cuanto espacio, de esa forma tendrás una mejor respuesta.

Salud OS

Mira egostar, a lo que me refiero es a que por ejemplo digamos que tenemos un programa que cada sierto tiempo me obtenga una lista de los programas en ejecucion, Digamos por ejemplo el winlogon, lo que yo quisiaras es que de alguna forma poder obtener la direccion(o Path) desde donde se esta ejecontando en este caso el winlogon(Ejmp. C:\windows\system32\winlogon.exe) porque hasta ahora solo me devuelve el exe(winlogon.exe). Espero que halla quedado vien claro.
Gacias de antemano por la ayuda que me puedan dar.....

seoane 26-09-2008 12:20:30

Cita:

Empezado por Suriu (Mensaje 316421)
Espero que halla quedado vien claro

Como el agua

Pero tambien dices:
Cita:

Empezado por Suriu (Mensaje 316421)
... porque hasta ahora solo me devuelve el exe

Lo que me lleva a pensar que ya tienes un codigo para hacer lo que quieres pero que no te devuleve exactamente lo que necesitas, si es asi porque no lo colocas por aqui y entre todos buscamos donde esta el fallo.

cHackAll 26-09-2008 18:23:09

Código Delphi [-]
uses TlHelp32;
 
function GetProcessImageFileName(dwProcessId: Cardinal): string overload;
var
 hSnapshot: Integer;
 ModuleEntry: TModuleEntry32;
begin
// Result := '';
 hSnapshot := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId);
 if hSnapshot <> -1 then
  begin
   if Module32First(hSnapshot, ModuleEntry) then
    Result := ModuleEntry.szExePath;
   CloseHandle(hSnapshot);
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 ShowMessage(GetProcessImageFileName(666));
end;

Suriu 28-09-2008 20:14:40

hola cHackAll acavo de provar tu ejemplo y funciona perfectamente aunque en algunos procesos como el "Session Manager Subsystem(smss.exe)" cuando tratas de obtener la ruta del exe te devuelve el Path combinado com las variables del systema (\SystemRoot\System32\smss.exe) pero no importa asi me sirve y en todo caso ya me las arreglare para corregir esto, de todos modos muchas gracias por tu ayuda.


La franja horaria es GMT +2. Ahora son las 19:01:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi