Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Acceso a exe en ejecución (https://www.clubdelphi.com/foros/showthread.php?t=36552)

ElDuc 16-10-2006 17:15:43

Acceso a exe en ejecución
 
Hola colegas.

Necesito acceder a un archivo.exe que se está ejecutando:

Código Delphi [-]
 
Procedure ..........
Var Fi:File;
begin
AssignFile(Fi,Exe.Text);
{$I-}
Reset(Fi,1);
{$I+}
If IOResult<>0 Then
  Begin Beep;ShowMessage('Error de acceso al archivo');Exit;End;
CloseFile(Fi);
end;

Donde Exe es un TEdit y su propiedad Text contiene el nombre del archivo que quiero manipular.

El sistema me da un error (32) y no me deja acceder.

Alguien puede ayudarme?.

Gracias.

seoane 16-10-2006 17:43:16

Mientras un archivo .exe se esta ejecutando no se puede modificar. Si por el contrario solo lo quieres leer, tienes que indicar que lo abra como solo lectura.

Código Delphi [-]
var
  F: File;
begin
  AssignFile(F,ParamStr(0));
  Filemode:= 0; // <-- Indicamos como se debe abrir el archivo
  {$I-}
    Reset(F);
  {$I+}
  if IOResult = 0 then
  begin

    CloseFile(F);
  end;
end;

Neftali [Germán.Estévez] 16-10-2006 17:47:11

No se exactamente qué quieres hacer con un EXE que está en ejecución, pero es normal que es sistema no te deje modificarlo (Reset con valor por defecto).

ElDuc 16-10-2006 18:03:39

Cita:

Empezado por Neftali
No se exactamente qué quieres hacer con un EXE que está en ejecución, pero es normal que es sistema no te deje modificarlo (Reset con valor por defecto).

Estoy creando un editor hexadecimal de archivos y no sé si se utilizará con archivos exe y si estos estarán en ejecución.

No sabía que no se pueda modificar un exe en ejecución, ya que si está en ejecución, está en la RAM y no necesita el archivo del disco. O eso pensaba yo.

Neftali [Germán.Estévez] 16-10-2006 18:13:37

Cita:

Empezado por ElDuc
No sabía que no se pueda modificar un exe en ejecución, ya que si está en ejecución, está en la RAM y no necesita el archivo del disco. O eso pensaba yo.

Cargalo en memoria (sólo-lectura) como te han indicado y en todo caso a la hora de guardar será cuando obtengas el error. En ese saco visualizas un mensaje del tipo "No se puede guardar, el archivo está bloqueado o en uso." y listo.

ElDuc 16-10-2006 18:19:16

Gracias colegas.

Me habéis ahorrado mucho tiempo que hubiera gastado intentando hacer algo imposible.


La franja horaria es GMT +2. Ahora son las 03:37:02.

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