Ver Mensaje Individual
  #4  
Antiguo 28-01-2014
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Reputación: 17
radenf Va por buen camino
Estimado jafera:

Yo utilizo esta función que realiza lo que tú necesitas (No recuerdo de dónde la obtuve):

Código Delphi [-]
function Ejecutar(Programa:String;Esperar:Boolean=True):Boolean;
var
ProcInfo:TProcessInformation;
Info:TStartupInfo;
begin
FillChar(Info,SizeOF(Info),0);
Info.cb:=SizeOf(Info);
Info.dwFlags:=STARTF_USESHOWWINDOW;
Info.wShowWindow:=SW_SHOWNORMAL;
Result:=CreateProcess(nil,PChar(Programa),nil,nil,False,0,nil,nil,Info,ProcInfo);
if Esperar then
while WaitForSingleObject(ProcInfo.hProcess,100)=Wait_TimeOut do
begin
Application.ProcessMessages;
if Application.Terminated then Break;
end;
end;

Ejemplo para llamar el programa, que en este caso es un grabador de CD alojado en una carpeta del ejecutable:

Código Delphi [-]
begin
with TRegistry.Create do
try
RootKey:= HKEY_CURRENT_USER;
OpenKey('Software\SoftMedica\Nemesis WorkStation', True);
WriteString('DBEditDir.Text',DBEditDir.Text);
WriteString('DBText1.Caption',DBText1.Caption);
Ejecutar(ExtractFilePath(Application.ExeName) + 'Grabador\CDBurner.exe', False);
finally
Free;

Yo le paso algunos parámetros de ejecución, guardándolos en el registro de Windows, a los que accede el grabador al crearse.
Espero que te pueda servir.
Saludos
Responder Con Cita