Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-10-2006
albertoP albertoP is offline
No confirmado
 
Registrado: ene 2006
Posts: 35
Poder: 0
albertoP Va por buen camino
Recoger parametros de una web

Supongamos que yo tenga una pagina html cargada en el explorador y pase el siguiente parametro en el explorador.

file:///C:/mi_programa.exe/crear_carpeta

**Y que mi programa echo en delphi recoja crear_carpeta y ejecute por ejemplo crear una carpeta.....

No se se me exlique bien desde ya muchas gracias

Saludos y Respetos
Responder Con Cita
  #2  
Antiguo 15-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Vayamos por partes Alberto. Dices que tienes una página Web cargada en el navegador de Internet, empero, ¿se trata de HTML puro y duro? Puesto que, hasta donde llego yo, HTML no puede recibir las variables (vale parámetros, creo) puesto que no podríamos hacer nada con ellas en HTML... tal vez en JavaScript, seguro en PHP, ASP, JSP y en general cualquier lenguaje del lado del "Servidor".

Ahora. También creo que habría algún que otro problema para que un programa se ejecutase, directamente, desde la URL del navegador... como mínimo debería pedirse permiso al usuario para hacer algo así, puesto que podría resultar en algo verdaderamente comprometido para dicho usuario y hasta para el sistema, pero, en fin, aquí me pierdo un poco.

Tú puedes enviar parámetros a tu programa escrito en Delphi de la siguiente forma:

Código:
C:\tuprograma.exe -unparametro -otroparametro -untercero
E incluso de esta otra forma, me parece que también es válido, aunque, luego dependerá de cómo trates tú dichos parámetros en tu programa:

Código:
C:\tuprograma.exe \unparametro \otroparametro \untercero
Ahora bien, estoy suponiendo que se "llama" a tu programa desde la línea de comandos, desde un archivo de proceso por lotes, incluso desde el explorador de Windows, pero, aquí no entra para nada el HTML ni ninguna página Web...

En fin. Creo que algo se me escapa, es decir, ¿porqué no le das otra vuelta y planteas el problema de otro modo a ver si se ve mejor el caso? Yo lamento no poder decirte nada más por el momento.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 15-10-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Solo añadir un par de cosas a la completa explicación de dec. Además de los lenguajes PHP, ASP, JSP puedes usar tu programa hecho en delphi como un cgi, pero sigues necesitando un servidor que se encargue de ejecutar tu programa.

Por otro lado, leyendo tu pregunta se me ocurre que lo que estas usando para ver la pagina no es el explorador si no un objeto del tipo TWebBrowser. Si es así, puedes usar el evento OnBeforeNavigate2 para obtener tanto la URL como la información POST cada vez que pulses sobre un enlace de la pagina. Una vez que tienes la URL no seria muy difícil separar los parámetros y realizar la tarea indicada:

Un poco de código:
Código Delphi [-]
procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
var
  URLStr: string;
begin
  if VarIsArray(URL) then
  begin
    URLStr:= String(PChar(VarArrayLock(URL)));
    VarArrayUnlock(URL);
    // Ahora en la variable URLStr tienes un string con la URL
  end;
end;
También puedes usar un formulario para enviar la información y utilizar el método POST. En ese caso podemos obtener el valor de cada uno de los parámetros a partir de su nombre. Es decir:
Código Delphi [-]
procedure TForm1.WebBrowser1BeforeNavigate2(ASender: TObject;
  const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; var Cancel: WordBool);
begin
  if VarIsArray(PostData) then
  with TStringList.Create do
  try
    Delimiter:= '&';
    DelimitedText:= String(PChar(VarArrayLock(PostData)));
    VarArrayUnlock(PostData);
    // Mostramos el valor del parametro P1
    ShowMessage(Values['P1']);    
  finally
    Free;
  end;
end;

Y por ultimo, siempre puedes un montar una aplicación en delphi que actué como servidor web, con Indy no resulta difícil. Esta recibirá las peticiones del navegador y las interpretara como quiera.
Responder Con Cita
  #4  
Antiguo 15-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por dec
Código:
C:\tuprograma.exe \unparametro \otroparametro \untercero
Siempre lo he visto de esta forma:
Código:
C:\tuprograma.exe /unparametro /otroparametro /untercero
Si creas una línea de comando, implementa tambien los parámetros "/h /help /?" que son estandar en cualquier programa, y que hace un ShowMessage explicando cada uno de los parámetros que pueden aplicarse y qué hace cada uno de ellos.

Un detalle más, si quieres implementar un parámetro con espacios o tu programa puede estar dentro de "C:\Archivos de programa" revisa este mensaje y temas relacionados

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 15-10-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Sí. Llevas razón Lepe, las barras no "normales" y no "invertidas". A lo menos así es en general.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 15-10-2006
albertoP albertoP is offline
No confirmado
 
Registrado: ene 2006
Posts: 35
Poder: 0
albertoP Va por buen camino
hola y gracias a todos por su interes:

A ver la idea de de Seoane, los otros dias via un appWeb montada con apache que tenia una programa echo en delphi al cual se le psaba por ejemplo:

http://localhost/usuario.exe/crear_usuario

y entonces el soft me creaba el usuario.....

Y entonces me dio curiosidad por saber como se hace....
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
Recoger Información de Balanza altp Varios 4 22-08-2005 21:26:32
Recoger valor campo autonumerico mamsantos Lazarus, FreePascal, Kylix, etc. 6 27-07-2005 18:35:11
Recoger errores SQL ronson Firebird e Interbase 1 27-05-2004 18:09:05
Recoger en BDLookUpComboBox bustio Conexión con bases de datos 1 09-01-2004 22:54:08
Recoger datos de Word RaulChemical Impresión 0 01-10-2003 16:23:34


La franja horaria es GMT +2. Ahora son las 00:51:39.


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