FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Abrir explorador internet con una variable como URL
Posts: 74
Joined: Mon Jun 10, 2013 01:21 PM
Abrir explorador internet con una variable como URL
Posted: Thu Feb 21, 2019 03:06 PM

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

Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Abrir explorador internet con una variable como URL
Posted: Thu Feb 21, 2019 09:38 PM
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
Code (fw): Select all Collapse
#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

//----------------------------------------------------------------------------//
Posts: 74
Joined: Mon Jun 10, 2013 01:21 PM
Re: Abrir explorador internet con una variable como URL
Posted: Mon Feb 25, 2019 03:13 PM

Hola Cesar,
Estuve analizando y el error lo tenia en la cadena que recibo desde el impresor fiscal, viene con unos caracteres 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

Continue the discussion