Excel

Cómo iniciar Internet Explorer para realizar pruebas

¡Siempre me sorprende el nivel de pura estupidez que Microsoft exuda a veces!

Lo sé, todos tenemos nuestros momentos de gloria, yo incluido, pero Microsoft parece lograr superarse a sí mismo.

Soy consciente de que, en un mundo ideal, Microsoft quiere que todos utilicemos MS365 y, por lo tanto, todos habríamos migrado todos nuestros controles de navegador web existentes para utilizar el «nuevo» control de navegador web moderno, pero esa no es la realidad, ¡ni de lejos! El hecho es que el control de navegador web heredado sigue siendo totalmente compatible y, por lo tanto, ¿por qué arreglar algo que no está roto? Además, muchas personas simplemente no utilizan MS365, por lo que ni siquiera tienen acceso al control de navegador web moderno.

Todo esto para decir que muchas bases de datos todavía utilizan el control del navegador web ‘Legacy’, es decir, IE (Internet Explorer).

Ahora bien, cualquiera que se dedique seriamente al desarrollo sabe que, a diferencia del control Modern Web Browser, con el control Legacy Web Browser uno de los mejores enfoques es realizar el desarrollo fuera de Access, es decir, usar el editor que prefiera (NotePad++, VSCode, SublimeText, etc.) y luego realizar pruebas directamente en IE. Luego, una vez que esté funcional, lleve el archivo a Access.

Nota al margen
Lamentablemente, debido al requisito del navegador web moderno de usar el protocolo ‘, las pruebas locales basadas en Edge han sido prácticamente imposibles, lo que hace que el desarrollo sea más desafiante de lo que es/era con el control del navegador web heredado.

Para páginas HTML muy básicas y autónomas, aún se pueden realizar pruebas, pero para cualquier cosa que use recursos/bibliotecas externas, este nuevo requisito hace que las pruebas locales sean imposibles en Edge (u otro navegador de su elección) y estamos restringidos a realizar el desarrollo solo a través de Microsoft Access directamente.

¡Nada como las mejoras!

¡¡¡Huston, tenemos un GRAN problema!!!

Microsoft presentó el navegador Edge, el reemplazo de IE y con el tiempo lo convirtió en el navegador principal hasta el punto de que ahora se ha vuelto prácticamente imposible abrirlo de cualquier manera, lo que hace imposible el desarrollo.

Al utilizar cualquier vínculo, acceso directo o menú de Internet Explorer, se abre Edge. Así es, incluso cuando intentas abrir Internet Explorer explícitamente, Microsoft anula esa acción y abre Edge.

Lo admitan o no, IE sigue siendo un componente fundamental de muchas herramientas, ¡y no solo de Access! Con su mano fuerte al impulsar Edge de esta manera, han demostrado un total desprecio por todos sus usuarios y han perjudicado seriamente a sus desarrolladores.

Los controles basados ​​en IE siguen siendo totalmente compatibles y lo serán durante algún tiempo, por lo que no permitirnos desarrollar adecuadamente es una completa ESTÚPIDA. Ahora bien, entiendo que querer proteger a los usuarios generales de usar Internet Explorer, pero no darnos algún medio para recuperar la capacidad de iniciarlo, no darnos alguna propiedad de Windows para controlar este comportamiento es una falta de respeto a todos los desarrolladores. Microsoft puede afirmar lo que quiera y decir que es en nombre de la seguridad. Si eso es cierto, entonces ¿por qué los controles de IE (control de navegador web heredado) todavía se pueden usar? No se puede tener el pastel y comérselo también.

¡Enfoques pasados ​​que ya no funcionan!

Menú y accesos directos de Windows

Sí, así es, ya no funciona el botón de aplicación predeterminado del menú de Windows. En su lugar, se inicia Edge. Lo mismo ocurre con los accesos directos del escritorio que puedan existir en el sistema.

Símbolo del sistema

Esto hace NO ¡Funciona! Pero antes podíamos hacer:

"C:\Program Files\Internet Explorer\iexplore.exe" https://www.google.com
"C:\Program Files\Internet Explorer\iexplore.exe" "file://C:\Dev\slider.html"
"C:\Program Files\Internet Explorer\iexplore.exe" "about:blank"

Ahora bien, desde que se lanzaron algunas actualizaciones de seguridad, ¿se inicia Edge? Además, ejecutar dichos comandos en realidad activa advertencias de seguridad de Seguridad de Windows: ¡Protección contra virus y amenazas!

Menú contextual/Abrir con

Al hacer clic derecho en un archivo HTML y seleccionar Abrir con -> Internet Explorer en el menú contextual también se inicia Edge.

Edge – Abrir con Internet Explorer

He visto a gente explicar que se puede cargar una página en Edge y luego ir al Menú principal -> Más herramientas -> Abrir con Internet Explorer. Lamentablemente, esta opción no está disponible en ninguna de mis computadoras.

Algunas soluciones alternativas

A lo largo de los años he visto aparecer y desaparecer algunas soluciones alternativas, por lo que les presento algunas que actualmente parecen funcionar, ya que los enfoques más antiguos ya no lo hacen. Además, tengan en cuenta que cualquiera de ellas podría dejar de funcionar en cualquier momento. Recuerden que Microsoft no quiere que nadie use IE, ¡en absoluto!

VBScript

Entonces, aunque no podemos iniciar IE a través del símbolo del sistema, ¡podemos usar VBScript!

Set oIE = CreateObject("InternetExplorer.Application")
oIE.Visible = true

Set oIE = CreateObject("InternetExplorer.Application")
oIE.Visible = true
oIE.Navigate "about:blank"

Set oIE = CreateObject("InternetExplorer.Application")
oIE.Visible = true
oIE.Navigate "file://C:\Dev\slider.html"

VBA

Podemos tomar el código VBScript y convertirlo a VBA y eso también funciona.

Sub LaunchIE()
    Dim oIE As Object
    
    Set oIE = CreateObject("InternetExplorer.Application")
    oIE.Visible = True
    Set oIE = Nothing
End Sub
Sub LaunchIE_Blank()
    Dim oIE As Object
    
    Set oIE = CreateObject("InternetExplorer.Application")
    oIE.Visible = True
    oIE.Navigate "about:blank"
    Set oIE = Nothing
End Sub
Sub LaunchIE_Site()
    Dim oIE As Object
    
    Set oIE = CreateObject("InternetExplorer.Application")
    oIE.Visible = True
    oIE.Navigate "
    Set oIE = Nothing
End Sub
Sub LaunchIE_File()
    Dim oIE As Object
    
    Set oIE = CreateObject("InternetExplorer.Application")
    oIE.Visible = True
    oIE.Navigate "file://C:\Dev\slider.html"
    Set oIE = Nothing
End Sub

o mejor aún

Sub LaunchIE(ByVal sURL As String)
    Dim oIE As Object
    
    Set oIE = CreateObject("InternetExplorer.Application")
    oIE.Visible = True
    oIE.Navigate sURL
    Set oIE = Nothing
End Sub

¡Así que podríamos llamarlo directamente desde nuestras aplicaciones!

Potencia Shell

Dado que VBScript está quedando obsoleto, pensé que sería prudente proporcionar una solución de PowerShell.

New-Object -COMObject InternetExplorer.Application -Property @{Visible=$true}
New-Object -COMObject InternetExplorer.Application -Property @{Navigate2='about:blank'; Visible=$true}
New-Object -COMObject InternetExplorer.Application -Property @{Navigate2=' Visible=$true}
New-Object -COMObject InternetExplorer.Application -Property @{Navigate2='C:\Dev\slider.html'; Visible=$true}

o mi enfoque preferido, similar a lo que haría en VBScript/VBA

$oIE = New-Object -COM "InternetExplorer.Application";
$oIE.visible=$true;
$oIE = New-Object -COM "InternetExplorer.Application;"
$oIE.visible=$true;
$oIE.Navigate2("about:blank");
$oIE = New-Object -COM "InternetExplorer.Application";
$oIE.visible=$true;
$oIE.Navigate2(");
$oIE = New-Object -COM "InternetExplorer.Application";
$oIE.visible=$true;
$oIE.Navigate2("file://C:\Dev\slider.html");

Así que sí, por ahora tenemos algunas posibles soluciones alternativas, pero no me sorprendería si dejaran de funcionar en algún momento. Además, ¡fíjate que todas las soluciones alternativas implican codificación!

¿Dónde está el equipo de desarrollo de Access en esto?

¡No lo sabría decir!

Saben perfectamente que tienen un producto que básicamente utiliza IE y deberían haber garantizado que pudiéramos trabajar con él correctamente, lo que también significa desarrollar y probar con IE. O bien no se han pronunciado al respecto para proteger a su desarrollador o simplemente fueron ignorados por los que toman estas decisiones.

¿Qué pasa con otros equipos que también tienen o admiten un control de navegador web «heredado»? Una vez más, no tengo idea.

Lo único que sé es que Microsoft ha hecho que sea increíblemente difícil realizar pruebas básicas mientras sigan brindando soporte para los controles del navegador web basados ​​en IE y tenemos que usar código para lograr hacer nuestro trabajo. Dado que siguen recibiendo soporte completo, ¡no deberíamos tener que pasar por tantos obstáculos!

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba