Page 1 of 1

Capturar la dirección del navegador

PostPosted: Thu Sep 15, 2022 7:47 pm
by TOTOVIOTTI
Buenas tardes:

¿Cómo puedo capturar desde mi aplicación, la ruta que indica mi navegador que está abierto?

Necesito tomar esa dirección, para realizar un procedimiento... tengo el navegador abierto y
desde mi sistema, necesito saber dónde está apuntando...

Muchas gracias
Roberto

Re: Capturar la dirección del navegador

PostPosted: Thu Sep 15, 2022 8:22 pm
by Antonio Linares
Que navegador ?

Cualquier navegador ?

Re: Capturar la dirección del navegador

PostPosted: Thu Sep 15, 2022 8:24 pm
by TOTOVIOTTI
Si es posible, si Antonio... del navegador que esté activo.
Sino, puedo llegar a lanzar uno y usar ese, pero para librarme de eso y que el usuario pueda
elegir el que más le guste...

Muchas gracias!
Roberto

Re: Capturar la dirección del navegador

PostPosted: Fri Sep 16, 2022 4:36 am
by Antonio Linares
Roberto,

You can use Ctrl + L ; Ctrl + C. This is valid for all the browser I have used.

You can also use F6; Ctrl + C this is working with chrome.

You can use F4; Ctrl + C. This is working with Firefox.

https://www.edureka.co/community/33916/how-to-get-the-url-of-the-current-tab-in-google-chrome

Tendrias que localizar el handle de la ventana del navegador y enviar esas combinaciones de teclas. El resultado queda en el clipboard.

Prueba asi: MsgInfo( FindWindow( "Chrome_WidgetWin_1", 0 ) )

Re: Capturar la dirección del navegador

PostPosted: Fri Sep 16, 2022 5:11 am
by Antonio Linares
Estoy probando asi pero aun falla el envío de Ctrl+C
Code: Select all  Expand view
#include "FiveWin.ch"

#define WM_ACTIVATE  0x0006

function Main()

   local hWndChrome := FindWindow( "Chrome_WidgetWin_1", 0 )

   PostMessage( hWndChrome, WM_ACTIVATE, 0x1, 0x056C )
   PostMessage( hWndChrome, WM_KEYDOWN, VK_F6, 0 )
   PostMessage( hWndChrome, WM_KEYUP, VK_F6, 0 )
   PostMessage( hWndChrome, WM_KEYDOWN, VK_CONTROL, 0 )
   PostMessage( hWndChrome, WM_KEYDOWN, Asc( "c" ), 0 )
   PostMessage( hWndChrome, WM_KEYUP, VK_CONTROL, 0 )
   PostMessage( hWndChrome, WM_KEYUP, Asc( "c" ), 0 )

   OpenClipboard( 0 )
   MsgInfo( GetClpData( 1 ) )
   CloseClipboard()

return nil
 

Re: Capturar la dirección del navegador

PostPosted: Fri Sep 16, 2022 5:51 am
by Antonio Linares
He probado también asi pero de momento no hay suerte:
Code: Select all  Expand view
#include "fivewin.ch"

#define WM_ACTIVATE  0x0006

function Main()

   local hWndChrome := FindWindow( "Chrome_WidgetWin_1", 0 )

   PostMessage( hWndChrome, WM_ACTIVATE, 0x1, 0x056C )
   Sleep( 500 )
   PostMessage( hWndChrome, WM_KEYDOWN, VK_F6, 0 )
   PostMessage( hWndChrome, WM_KEYUP, VK_F6, 0 )
   SendCtrlC()

   OpenClipboard( 0 )
   MsgInfo( GetClpData( 1 ) )
   CloseClipboard()

return nil

#pragma BEGINDUMP

#include <hbapi.h>
#include <windows.h>

HB_FUNC( SENDCTRLC )
{
   INPUT ip;
   ip.type = INPUT_KEYBOARD;
   ip.ki.wScan = 0;
   ip.ki.time = 0;
   ip.ki.dwExtraInfo = 0;
 
   // Press the "Ctrl" key
   ip.ki.wVk = VK_CONTROL;
   ip.ki.dwFlags = 0; // 0 for key press
   SendInput( 1, &ip, sizeof( INPUT ) );

   // Press the "c" key
   ip.ki.wVk = 'c';
   ip.ki.dwFlags = 0; // 0 for key press
   SendInput( 1, &ip, sizeof( INPUT ));

   // Release the "c" key
   ip.ki.wVk = 'c';
   ip.ki.dwFlags = KEYEVENTF_KEYUP;
   SendInput( 1, &ip, sizeof( INPUT ) );

   // Release the "Ctrl" key
   ip.ki.wVk = VK_CONTROL;
   ip.ki.dwFlags = KEYEVENTF_KEYUP;
   SendInput( 1, &ip, sizeof( INPUT ) );
   
   Sleep( 1000 ); // pause for 1 second
}

#pragma ENDDUMP

Re: Capturar la dirección del navegador

PostPosted: Fri Sep 16, 2022 10:41 am
by TOTOVIOTTI
Muchas gracias Antonio!

La consulta es, se podrá?
He probado con el formato que me pasas y no tengo el resultado tampoco...

Roberto

Re: Capturar la dirección del navegador

PostPosted: Fri Sep 16, 2022 1:40 pm
by TOTOVIOTTI
Antonio,
si lanzo mi url a WebView, no puedo obtener el resultado en algún dato?

Veo que la WebView tiene un par de datas pero no devuelve eso.

Avísame cuando puedas!
Gracias!!

Re: Capturar la dirección del navegador

PostPosted: Sat Sep 17, 2022 2:45 am
by Antonio Linares
Usando WebView es muy sencillo:
Code: Select all  Expand view
#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oWebView := TWebView():New()

   oWebView:bOnBind = { | cJson, nCalls | MsgInfo( cJson, nCalls ) }
   oWebView:Bind( "SendToFWH" )
   oWebView:Navigate( "https://www.google.com" )
   Sleep( 200 )
   oWebView:Eval( "SendToFWH( document.URL )" )
   oWebView:Run()
   oWebView:Destroy()

return nil

//----------------------------------------------------------------------------//

Re: Capturar la dirección del navegador

PostPosted: Mon Sep 19, 2022 2:00 pm
by TOTOVIOTTI
Gracias Maestro... intentaré ver si puedo aplicar esto...

muchas gracias!!!!!!
Saludos, Roberto...