![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#4
|
|||
|
|||
|
Hola a todos, yo uso lo siguiente para lanzar un exe desde mi programa utilizando CreateProcess, uso delphi3, no creo que haya problemas para una versión superior.
Un saludo Jose Arce uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, ComDrv32, ExtCtrls, Db, DBTables, BDE, ComCtrls, OleCtrls, sase_TLB, TablPack; // Son los uses que tengo, no me acuerdo cual se tiene que incluir // ---------------------------------------------------------------------------------------------------------- private function Ejecutar(const AppName, Params: string): THandle; procedure Esperar(H: THandle); { Private declarations } ------------------------------------------------------------------------------------------------- function Tfprincipal.Ejecutar(const AppName, Params: string): THandle; var ProcInfo: TProcessInformation; Info: TStartupInfo; begin FillChar(Info, SizeOf(Info), 0); Info.cb := SizeOf(Info); Info.dwFlags := STARTF_USESHOWWINDOW; Info.wShowWindow := SW_SHOWNORMAL; if not CreateProcess(nil, PChar(AppName + ' ' + Params), nil, nil, False, 0, nil, nil, Info, ProcInfo) then raise Exception.Create('No se puede iniciar la aplicación'); Result := ProcInfo.hProcess; end; // Hago una espera de 100 milisegundos antes de lanzar la aplicacion // procedure Tfprincipal.Esperar(H: THandle); begin while WaitForSingleObject(H, 100) = WAIT_TIMEOUT do begin Application.ProcessMessages; if Application.Terminated then Break; end; end; // Lanzo la aplicación al pulsar un boton // procedure TFPrincipal.Cruzados1Click(Sender: TObject); begin try Esperar(Ejecutar('c:\giropesw\Listados.exe', '')); finally end; end |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|