Ver Mensaje Individual
  #16  
Antiguo 09-03-2020
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por MaxiDucoli Ver Mensaje
Hola acá molestando otra vez.

Sabés que el programa se me queda tildado y no ejecuta nada?
Parece que el problema es acá:

if CreateProcess(nil, PCHAR(CommandLine), nil, nil, false, 0, nil, nil, SI, PI)

Pero no puedo saber por qué.
Me dice error
reised exception class $C00000005 with mesage 'access violation at 0x7788d00: write of adress 0x005eb846'

Qué puede ser?
Tendrás que especificar más cosas, cual es el código exacto que has usado, S.O. y compilador. Para concretar las cosas te subo el proyecto que hice con su binario. Está escrito y compilado con delphi7.

Te propongo un cambio:
Código Delphi [-]
//------------------------------------------------------------------------------
// Creamos un proceso.
function TForm1.Execute(CommandLine: String): cardinal;
var
  SI: TStartupInfo;
  PI: TProcessInformation;
begin
  ZeroMemory(@SI, sizeof(TStartupInfo));
  SI.cb:= sizeof(SI);
  SI.dwFlags:= STARTF_USESHOWWINDOW or STARTF_USEPOSITION;// or STARTF_USESIZE;
  SI.wShowWindow:= SW_SHOW;
  Result:= 0;
  if CreateProcess(nil, PCHAR(CommandLine), nil, nil, false, 0, nil, nil, SI, PI) then
  begin
    WaitForInputIdle(PI.hProcess, 10000);
    Visible:= false;
    WaitForSingleObject(PI.hProcess,INFINITE);
    GetExitCodeProcess(PI.hProcess, Result);
    CloseHandle(PI.hProcess);
    CloseHandle(PI.hThread);
  end
  else
    Result:= $FFFFFFFF;
end;

Lo puedes encontrar aquí: Exec_Whait_End.zip.


Saludos.
Archivos Adjuntos
Tipo de Archivo: zip Exec_Whait_End.zip (192,5 KB, 12 visitas)

Última edición por escafandra fecha: 09-03-2020 a las 08:16:21.
Responder Con Cita