Estimados colegas,
Estoy trabajando con una programa que debe leer una variable y abrir un internet explorer con la direccion obtenida que es dinamica en mi caso.
Debajo dejo un ejemplo de lo que estoy intentando ejecutar.
STATIC oWnd // ya esta definida en mi programa
FUNCTION TEST()
Local cIp,cCadena
cIp:='192.168.0.253' // esta dirección la obtengo consultando un impresor fiscal en linea sin problemas
// TEST 1 no funciona
cCadena:='http://' +cIp
ShellExecute( oWnd:hwnd,'open', cCadena )
// TEST 2 no funciona
cCadena:=('http://' +cIp)
ShellExecute( oWnd:hwnd,'open','"'+cCadena+'"')
// TEST 3 funciona pero con un valor fijo, no utilizo la variable
ShellExecute( oWnd:hwnd,'open','http://192.168.0.253')
RETU .T.
El resultado es la apertura del internet explorer pero sin ninguna dirección en la barra de dirección, por lo tanto no muestra nada, deberia mostrar la interface del impresor que esta disponible en http://192.168.0.253
Muchas gracias por su ayuda,
Saludos cordiales Mariano
Abrir explorador internet con una variable como URL
Re: Abrir explorador internet con una variable como URL
Hola Mariano:
Modifique el ejemplo que viene con Fivewin, testurl.prg, y le puse un boton que llame a la funcion ShellExecute, y funciona bien.
Verificaste bien que la oWnd esta definida?
Te copio el ejemplo para que lo pruebes
Modifique el ejemplo que viene con Fivewin, testurl.prg, y le puse un boton que llame a la funcion ShellExecute, y funciona bien.
Verificaste bien que la oWnd esta definida?
Te copio el ejemplo para que lo pruebes
Code: Select all
#include "FiveWin.ch"
#include "URLLink.ch"
#define COLOR_BTNFACE 15
//----------------------------------------------------------------------------//
function Main()
local nColor := GetSysColor( COLOR_BTNFACE )
local oDlg, oFont, oFnt1, oFnt2, oBmp
DEFINE FONT oFont NAME GetSysFont() SIZE 0, -12
DEFINE FONT oFnt1 NAME "ARIAL" SIZE 0, -20 BOLD
DEFINE FONT oFnt2 NAME "ARIAL" SIZE 0, -14 BOLD
DEFINE DIALOG oDlg RESOURCE "Main" FONT oFont
REDEFINE BITMAP oBmp ID 301 OF oDlg RESOURCE "Fivewin"
oBmp:cToolTip := "Logotipo de Fivewin"
REDEFINE SAY ID 101 PROMPT "FW/FWH/FW++/FWC3" FONT oFnt1 ;
COLOR CLR_BLACK, nColor OF oDlg
REDEFINE SAY ID 102 PROMPT "Fivetech © 1993-2004" FONT oFnt2 ;
COLOR CLR_MAGENTA, nColor OF oDlg
REDEFINE SAY ID 103 ;
PROMPT "La mejor librería para crear con CA-Clipper " + ;
"auténticas aplicaciones Windows. Es muy fácil " + ;
"de usar y los resultados son excelentes. " + ;
"Visite la página oficial de Fivewin:" ;
FONT oFont OF oDlg
REDEFINE URLLINK ID 104 URL "www.fivetechsoft.com" OF oDlg ;
TOOLTIP "Sitio oficial de FiveTech"
REDEFINE SAY ID 105 ;
PROMPT "Fivewin para Harbour le ofrece el poder de " + ;
"los 32 bits. Además, ya está disponible FW " + ;
"para el nuevo compilador C3. " + ;
"Contacte con nosotros enviando un e-mail a:" ;
FONT oFont OF oDlg
REDEFINE URLLINK ID 106 URL "mailto:alinares@fivetechsoft.com" OF oDlg ;
TOOLTIP "E-mail de FiveTech"
REDEFINE BUTTON ID 201 ACTION (ShellExecute( oDlg:hwnd,'open','http://192.168.0.1'), oDlg:End() ) //Aca abro en mi casa, el router
oDlg:lHelpIcon := .f.
ACTIVATE DIALOG oDlg CENTER ;
VALID ( oFont:End(), oFnt1:End(), oFnt2:End(), .t. )
return nil
//----------------------------------------------------------------------------//
Re: Abrir explorador internet con una variable como URL
Hola Cesar,
Estuve analizando y el error lo tenia en la cadena que recibo desde el impresor fiscal, viene con _ especiales de separador de campos que me estaban modificado la cadena del IP y por eso no funcionaba..
#define SE chr(28)
CallDll32 ( 'MandaPaqueteFiscal' , 'WINFIS32.DLL' , nHandler , CHR(163) )
CallDll32 ( 'UltimaRespuesta' , 'WINFIS32.DLL' , nHandler , @cRta )
cRta:= StrToken(cRta,3, SE )
? cRta // esta OK ahora
s:= 'http://'+ cRta
ShellExecute( 0,'OPEN', s ,'','', 1 ) // FUCIONA OK
Muchas gracias por tu tiempo y ayuda,
Saludos cordiales,
Mariano
Estuve analizando y el error lo tenia en la cadena que recibo desde el impresor fiscal, viene con _ especiales de separador de campos que me estaban modificado la cadena del IP y por eso no funcionaba..
#define SE chr(28)
CallDll32 ( 'MandaPaqueteFiscal' , 'WINFIS32.DLL' , nHandler , CHR(163) )
CallDll32 ( 'UltimaRespuesta' , 'WINFIS32.DLL' , nHandler , @cRta )
cRta:= StrToken(cRta,3, SE )
? cRta // esta OK ahora
s:= 'http://'+ cRta
ShellExecute( 0,'OPEN', s ,'','', 1 ) // FUCIONA OK
Muchas gracias por tu tiempo y ayuda,
Saludos cordiales,
Mariano