Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
enviar documento cargado a programa

amigos nuevamente y muy prontamente solicito su ayuda
tengo el siguiente codigo de un programa en ms-dos
Handler.cmd
Código:
@Echo Off
TITLE Reg2Inf Converter Handler
setlocal enableextensions

:start
set WORKFILE=%~1
set OUTFILE=%~dpn1.inf
CD /D %~dp1

:reg2infExecute
If not defined WORKFILE goto usageinfo
If not exist "%WORKFILE%" goto notexist
If exist "%OUTFILE%" goto overwritewarning

:doit
Echo.
Echo ** Converting "%~nx1" ...
reg2inf.exe "%WORKFILE%" "%OUTFILE%"
Echo.
PAUSE
goto end

:overwritewarning
color 0a
Echo.
Echo ** WARNING !
Echo.
Echo "%OUTFILE%": Already exists !
Echo.
:userpromptoverwrite
SET /P Result=- Overwrite ?: 
if /I "%Result%"=="yes" goto doit
If /I "%Result%"=="no" goto rename
If /I "%Result%"=="n" goto rename
goto userpromptoverwrite

:rename
SET /P OUTFILE=- New filename: 
If "%OUTFILE%"=="" goto rename
goto reg2infExecute

:usageinfo
color 0a
Echo.
Echo ** %~nx0 [NameOfRegFileToConvert.Reg]
Echo.
Echo - The output INF will be created in the same folder as the input REG
Echo   and with the same name (in this case: NameOfRegFileToConvert.Inf)
Echo.
Echo - Input REG file must exist, you will be prompted if a file with the
Echo   same name as the Output INF already exists.
Echo.
Echo ** Press any key to exit . . .
PAUSE > NUL
goto end

:notexist
color 4f
Echo.
Echo ** "%WORKFILE%": Does not exist !
Echo.
Echo ** Press any key to exit . . .
PAUSE > NUL
goto end

:end
endlocal
realmente no se como modificar el codigo para hacerlo correr en mi form
creo que seria mas facil tomar el archivo cargado y enviarlo a este programa
tengo los sgtes comando para tomar un archivo y quisiera enviarlo a su ejecución he visto codigos por aqui pero no me han servido si me orientaran un poco lo agradeceria
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
opendialog1.Filter := 'Archivos de registro|*.reg';
opendialog1.Execute;
if FileExists(OpenDialog1.FileName) then
  else
    ShowMessage(Edit1.Text+' Archivo no encontrado');
edit1.Text := OpenDialog1.FileName;
end;
Responder Con Cita
  #2  
Antiguo 05-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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 jonydread.

No estoy seguro de entender lo que buscas hacer, pero si se trata de ejecutar el archivo HANDLER.CMD, sería:
Código Delphi [-]
...
uses ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Handle, 'open', 'HANDLER.CMD', nil, nil, SW_NORMAL);
end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 05-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
Necesito tomar un archivo .reg por medio del boton abrir cargarlo a que handler.cmd lo procese por medio de un boton convertir
gracias por su respuesta!
Responder Con Cita
  #4  
Antiguo 05-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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
Entiendo, probá de este modo:
Código Delphi [-]
uses ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenDialog1.Filter := 'Archivos de registro|*.reg';
  if OpenDialog1.Execute then
    ShellExecute(Handle, 'open', 'HANDLER.CMD', PChar(OpenDialog1.FileName), nil, SW_NORMAL);
end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 06-11-2011
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
funciona ese codigo si coloco las rutas que no es la idea
Código Delphi [-]
 PChar('c:\miarchivo.reg')
en cambio asi
Código Delphi [-]
 PChar(OpenDialog1.FileName)
no hace nada probe con edit1.text y tampoco lo botones que tengo estan asi
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
opendialog1.Filter := 'Archivos de registro|*.reg';
opendialog1.Execute;
if FileExists(OpenDialog1.FileName) then
  else
    ShowMessage(Edit1.Text+' Archivo no encontrado');
edit1.Text := OpenDialog1.FileName;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    ShellExecute(Handle, 'open', 'HANDLER.CMD', PChar(OpenDialog1.FileName), nil, SW_NORMAL);

end;
primer boton carga archivo
segundo lo envia al programa externo
gracias!
Responder Con Cita
  #6  
Antiguo 06-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
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.

Seguramente el problema lo tengas en como maneja el parámetro Handler.cmd ¿ Por que pienso eso ? Acabo de hacer la siguiente prueba:

Contenido del Handler.cmd que cree en mi equipo:
Código:
set WORKFILE=%~1
type %~1
PAUSE
Este código muestra el contenido de un archivo enviado como parámetro y espera la pulsación de una tecla. Lo podes comprobar fácilmente escribiendo desde el propmt:
Código:
C:\>HANDLER C:\TEMP\ARCHIVO.TXT
(Ruta+Nombre de un archivo de texto existente)

Luego desde Delphi, ejecuto este código:
Código Delphi [-]
uses ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenDialog1.Filter := 'Archivos de texto|*.TXT';
  if OpenDialog1.Execute then
    ShellExecute(Handle, 'open', 'C:\HANDLER.CMD', PChar(OpenDialog1.FileName), nil, SW_NORMAL);
end;
Y sin ningún problema, visualizo en la ventana de símbolo de sistema el contenido del archivo .TXT enviado mediante ShellExecute.

No hay error en el envío del parámetro mediante ShellExecute ni en la recepción del mismo por Handler.cmd, por lo tanto el problema debe suceder luego en el manejo que hace Handler.cmd con el parámetro que recibió.

Un saludo.
__________________
Daniel Didriksen

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



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
Enviar documento usando el fax de Windows epuigdef Varios 5 17-10-2008 08:55:27
Enviar documento por fax desde delphi, desesperado:( manolop Varios 4 30-03-2007 15:20:56
enviar documento por mail walace_soy Servers 4 22-10-2004 13:12:54
Enviar documento *.doc por fax SLAKE Varios 0 29-01-2004 19:54:57


La franja horaria es GMT +2. Ahora son las 06:05:23.


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