Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 25-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Pienso que el problema se presenta por que Reg2Inf.exe no devuelve el control a la aplicación que lo invoca. Como te imaginas, me es imposible comprobarlo ya que ni siquiera sé que es lo que hace Reg2Inf.exe. Pero supongo que es una aplicación DOS. Si es así, quizá la prueba que realizé te pueda servir de algo.

Primero create 3 archivos de texto con algún contenido y llamalos ARCHIVO1.TXT, ARCHIVO2.TXT y ARCHIVO3.TXT. (En mi caso los situe en C:\TEMP)

Hacé un archivito de texto con el siguiente contenido:
Código:
@ECHO OFF
CLS
ECHO %1 %2
Guardalo como Reg2Inf.bat (en mi caso C:\'), lo único que hace es mostrar los parámetros enviados.

Luego desde Delphi:
Código Delphi [-]
...
implementation

uses
  ShellApi;

{ Archivos .TXT al Combo }
procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  for i:= 1 to 3 do
    ComboBox1.Items.Add('C:\TEMP\ARCHIVO'+IntToStr(i)+'.TXT');
end;

{ funcion que llama a Reg2Inf }
procedure LlamarReg2inf(Hnd: THandle; const App:string; const Origen: string;
  const Destino: string);
begin
  ShellExecute(Hnd,
              'OPEN',
              PChar(App),
              Pchar(Origen+' '+Destino),
              PChar(ExtractFilePath(App)),
              SW_SHOW); // quité SW_HIDE para visualizar el efecto
end;

{ cambia la extension .TXT por .INF (o la que gustes) }
function CambiarExt(Nom: string): string;
begin
  SetLength(Nom, Length(Nom)-Length(ExtractFileExt(Nom)));
  Result:= Nom+'.INF';
end;

{ Ejecuta y queda command prompt }
procedure TForm1.btnExecAndStayClick(Sender: TObject);
var
  i: Integer;
begin
  for i:= 0 to ComboBox1.Items.Count -1 do
   LlamarReg2Inf(Handle,'CMD', '/K C:\Reg2Inf.BAT '+ComboBox1.Items[i],
     CambiarExt(ComboBox1.Items[i]));
end;

{ Ejecuta y devuelve el control }
procedure TForm1.btnExecAndExitClick(Sender: TObject);
var
  i: Integer;
begin
  for i:= 0 to ComboBox1.Items.Count -1 do
   LlamarReg2Inf(Handle,'CMD', '/C C:\Reg2Inf.BAT '+ComboBox1.Items[i],
     CambiarExt(ComboBox1.Items[i]));
end;
end.
Como podrás comprobar funciona correctamente: Si enviás como parámetro '/K' muestra los nombres y queda en el command prompt y si envias '/C' hace lo propio y se devuelve el control.

Resumiendo, probá cambiando Reg2Inf.BAT por Reg2inf.EXE a ver que nos dice Reg2Inf.exe ...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 



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
Varios archivos en uno elcolo83 Varios 5 03-01-2008 15:02:17
Aplicación con varios archivos Alexander Varios 8 08-11-2007 15:15:22
UPLOAD de varios archivos por código HombreSigma .NET 3 04-12-2005 15:23:07
Borrar varios archivos mrmanuel Varios 5 27-05-2004 02:03:54
Enviar teclas a aplicacion externa El_Lu Varios 2 24-08-2003 02:59:20


La franja horaria es GMT +2. Ahora son las 16:22:55.


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