PDA

Ver la Versión Completa : Saber donde esta el .exe en ejecucion


maikeloh
15-02-2007, 11:00:05
Necesito saber como encontrar el camino de un .exe en tiempo de ejecucion, a partir de identificarlo por su ID de Proceso

Bicho
15-02-2007, 11:52:47
Hola,

la función ExtractFilePath(Nombreejecutable) te devuelve la ruta del fichero que quieras.
En tu caso:

ExtractFilePath(Application.ExeName)

Espero te sirva.

Saludos

seoane
15-02-2007, 13:48:26
Si lo que necesitas es la ruta de tu propio exe, la solución de bicho es la correcta. Pero si lo que quieres es la ruta de cualquier proceso conociendo su PID, esto es lo que buscas:

uses PsApi;

function GetProcessName(ProcessId: DWORD): String;
var
Process: THANDLE;
Buffer: array[0..MAX_PATH] of Char;
begin
Process := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, FALSE,
ProcessId);
if (Process<>0) then
begin
if (GetModuleFileNameEx(Process, 0, Buffer,Sizeof(Buffer)-1)>0) then
Result:= String(PChar(@Buffer));
CloseHandle(Process);
end;
end;


// Por ejemplo
ShowMessage(GetProcessName(GetCurrentProcessId));

JF Sebastian
16-02-2007, 17:38:06
tambien sirve paramstr(0) que te da el path y el nombre del ejecutable

maikeloh
23-02-2007, 21:49:18
La solucion que me brindaron me dio la solucion que necesita, un millon de gracias.:):D:o