TWebView2 - Detectar si está instalado en el sistema

TWebView2 - Detectar si está instalado en el sistema

Postby AngelSalom » Fri Oct 25, 2024 6:03 pm

Hola amigos, estoy "jugueteando" con TWebView2.
¿Existe algún modo de detectar si el "WebView2 Runtime" está instalado en el sistema?

Gracias,
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: TWebView2 - Detectar si está instalado en el sistema

Postby leandro » Fri Oct 25, 2024 6:06 pm

Hola Angel buenas tardes como estas?

Code: Select all  Expand view  RUN

    lSisas := IsWebViewAvailable()
 
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: TWebView2 - Detectar si está instalado en el sistema

Postby AngelSalom » Fri Oct 25, 2024 7:48 pm

Hola Leandro, gracias. Pero esa función solo detecta si webview.dll puede cargarse.
En el caso de webview2 no es necesaria.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: TWebView2 - Detectar si está instalado en el sistema

Postby Danielmaximiliano » Sun Oct 27, 2024 1:50 am

AngelSalom wrote:Hola Leandro, gracias. Pero esa función solo detecta si webview.dll puede cargarse.
En el caso de webview2 no es necesaria.

Hola :
te suguiero leas https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution?tabs=win32cpp#detect-if-a-webview2-runtime-is-already-installed
Slds
Danielmaximiliano
 
Posts: 26
Joined: Tue Mar 20, 2012 11:06 pm

Re: TWebView2 - Detectar si está instalado en el sistema

Postby Antonio Linares » Sun Oct 27, 2024 6:54 am

Code: Select all  Expand view  RUN
#include "FiveWin.ch"

function Main()

    MsgInfo( IsWebView2Available() )

return nil

function IsWebView2Available()

return ! Empty( TWebView2():New():hWebView )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: TWebView2 - Detectar si está instalado en el sistema

Postby AngelSalom » Sun Oct 27, 2024 8:23 am

Gracias Antonio, simple y efectivo.
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: TWebView2 - Detectar si está instalado en el sistema

Postby AngelSalom » Mon Oct 28, 2024 3:55 pm

Danielmaximiliano wrote:
AngelSalom wrote:Hola Leandro, gracias. Pero esa función solo detecta si webview.dll puede cargarse.
En el caso de webview2 no es necesaria.

Hola :
te suguiero leas https://learn.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution?tabs=win32cpp#detect-if-a-webview2-runtime-is-already-installed
Slds


Respecto a esta aproximación, en Windows 7 ( sí aún me quedan clientes usándolo ), da mejor resultado que la propuesta por Antonio, ya que aquella arroja un error de protección si el componente no está instalado.
Lo dicho, basándome en el enlace y siguiendo las instrucciones de Microsoft, se consulta el valor adecuado en diferentes puntos del registro.

Code: Select all  Expand view  RUN
Static Function IsWebView2Available()

    // Comprueba en RegEdit si está instalado WebView2
    // https://learn.microsoft.com/es-es/micro ... -installed

    #define  HKEY_CURRENT_USER       2147483649        // 0x80000001
    #define  HKEY_LOCAL_MACHINE      2147483650        // 0x80000002

    Local oReg AS Object := nil
    Local cPv AS String := ''
   
    oReg := TReg32():New( HKEY_LOCAL_MACHINE, 'SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}', .F. )
    cPv := oReg:Get( 'pv' )

    if Empty( cPv )

        oReg := TReg32():New( HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}', .f. )
        cPv := oReg:Get( 'pv' )

    endif

    if Empty( cPv )

        oReg := TReg32():New( HKEY_CURRENT_USER, 'Software\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}', .f. )
        cPv := oReg:Get( 'pv' )

    endif
   
return ( .Not. Empty( cPv ) )
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: TWebView2 - Detectar si está instalado en el sistema

Postby Antonio Linares » Mon Oct 28, 2024 5:13 pm

Muy bien!

No probé la función en Windows 7...
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 40 guests