Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cargar archivos con ShellExecuteEx (https://www.clubdelphi.com/foros/showthread.php?t=90614)

JuanOrtega 27-07-2016 01:54:37

Cargar archivos con ShellExecuteEx
 
Hola , anteriormente me ayudaron en este foro con el siguiente codigo de efcisa :

Código Delphi [-]
...
implementation

uses ShellApi;

procedure OpenJPG(const aName: TFileName);
var
  ExecInfo: SHELLEXECUTEINFO;
begin
  ZeroMemory(@ExecInfo, SizeOf(SHELLEXECUTEINFO));
  ExecInfo.cbSize := SizeOf(SHELLEXECUTEINFO);
  ExecInfo.fMask  := SEE_MASK_NOCLOSEPROCESS;
  ExecInfo.Wnd    := 0;
  ExecInfo.lpVerb := 'open';
  ExecInfo.lpFile := PChar(aName);
 // pExecInfo.lpParameters := ...
  ExecInfo.nShow  := SW_SHOWNORMAL;
  if not ShellExecuteEx(@ExecInfo) then
    if GetLastError <= 32 then
      SysErrorMessage(GetLastError)
end;

// Uso:
procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenJPG('C:\test.exe');
end;

El problema es que cuando el archivo a cargar esta oculto esta funcion tilda todo el programa ya sea grafico o consola.
Es raro porque cuando usaba Seven 32 bits no tenia este problema (ahora uso Seven 64 bits).
Cuando el archivo a cargar no esta oculto no produce ningun problema.

¿ Cual es el problema ?

Casimiro Notevi 27-07-2016 10:30:49

Puede ser que no tengas permisos para ver ese archivo oculto en ese directorio, prueba a ponerlo en un directorio que sea accesible para todos o para el usuario actual.

JuanOrtega 27-07-2016 18:07:02

Si , tambien probe asi , cargue el programa como administrador y sucede lo mismo , pero no son archivos ocultos del sistema ni nada asi , son archivos normales que los cambio a archivo oculto , no son importantes.

Casimiro Notevi 27-07-2016 18:09:45

Síguelo con el depurador y mira qué error devuelve.

JuanOrtega 28-07-2016 20:56:51

Al parecer ninguno , nunca muestra ninguna ventana de error ni en el IDE ni en el programa generado solo queda la ventana de la aplicacion congelada , es raro solo es con los archivos que estan ocultos.

Casimiro Notevi 28-07-2016 21:05:26

Pues entonces síguelo con el depurador y verás el código de error que devuelve.
Ya sabes, pones un breakpoint en la línea, lo ejecutas y miras el valor devuelto.


La franja horaria es GMT +2. Ahora son las 05:45:35.

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