Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 22-09-2011
Avatar de cubanbaker
cubanbaker cubanbaker is offline
Miembro
NULL
 
Registrado: ago 2011
Ubicación: La Habana, Cuba
Posts: 65
Poder: 0
cubanbaker cantidad desconocida en este momento
Esto lo encontré hace algun tiempo, no se de donde, y funciona!
Prueba la explicación según lo que quieras hacer.

Utilizando WinExec:



WinExec(PChar('notepad.exe'),SW_SHOWNORMAL); {Ejecuta el Notepad.Exe}



Este ejemplo ejecutará el Block De Notas

El fichero a ejecutar debe estar dentro del PATH, o bien lo llamamos con la ruta completa:



WinExec(PChar('c:\windows\notepad.exe'),SW_SHOWNORMAL); {Ejecuta el Notepad.Exe}



Con WinExec, el programa Delphi no espera a que termine la ejecución de la aplicacion externa.


Si queremos que nuestra aplicacion Delphi espere hasta que la aplicación llamada haya terminado, podemos utilizar esta otra forma:



function TForm1.WinExecAndWait32(FileName:String; Visibility:integer):integer;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
Resultado: DWord;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);

StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not CreateProcess(nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes}
nil, { pointer to thread security attributes}
false, { handle inheritance flag }
CREATE_NEW_CONSOLE or { creation flags }
NORMAL_PRIORITY_CLASS,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo) then Result := -1 { pointer to PROCESS_INF }

else begin
WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess,Resultado);
Result := Resultado;
end;
end;



Otra versión de la anterior, que ejecuta Applicacion.ProcessMessages para que no se muera tu form mientras espera:



function WinExecAndWait32(FileName:String; Visibility:integer):integer;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
Resultado,exitCode: DWord;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);

StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
CreateProcess(nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes}
nil, { pointer to thread security attributes}
false, { handle inheritance flag }
CREATE_NEW_CONSOLE or { creation flags }
NORMAL_PRIORITY_CLASS,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo);

{Espera a que termine la ejecucion}
{Wait until execution finish}
repeat
exitCode := WaitForSingleObject( ProcessInfo.hProcess,1000);
Application.ProcessMessages;
until (exitCode <> WAIT_TIMEOUT);
GetExitCodeProcess(ProcessInfo.hProcess,Resultado);
MessageBeep(0);
CloseHandle(ProcessInfo.hProcess );
Result:=Resultado;
end;
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Intraweb, Como ejecuto una aplicacion tulio Internet 13 21-03-2018 23:50:30
¿Cómo ejecuto parámetros en un DTS? mirkop84 SQL 2 23-06-2006 01:58:05
como ejecuto un .exe Johnny DelphiPACK 1 17-12-2004 16:36:45
Como saber que SubMenu se ejecuto rjsitruiz Varios 6 14-07-2004 23:33:04
Como ejecuto una aplicacion externa a D5 kia Varios 3 26-08-2003 00:12:10


La franja horaria es GMT +2. Ahora son las 08:30:30.


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