Configure Internet Explorer como el navegador predeterminado desde la línea de comando

10

¿Es posible configurar Internet Explorer como el navegador predeterminado para iniciar desde la línea de comandos?

Tengo una aplicación web que solo se ejecuta en Internet Explorer, pero si sucede que Firefox es el navegador predeterminado, no funciona. Los usuarios están en un entorno de dominio y aunque trato de iniciar nuestra aplicación desde un lote de esta manera:

start "C:\Program Files\Internet Explorer\iexplore.exe" http://server_ip/home_page

la aplicación no se inicia a menos que cambie el navegador manualmente.

nick rulez
fuente
44
Supongo que "arreglar la aplicación para que realmente cumpla con el html correcto en lugar de romperse en cada navegador decente" ¿no es una opción?
Shadur
1
@Shadur Hay algunas esferas donde los problemas se ven como características ...
Joseph Hansen
Confiar en un comportamiento roto específico para un solo navegador no es, o al menos nunca debería ser, una característica.
Shadur
@ techie007 No lo probé yo mismo, pero puedes consultar aquí y aquí .
avirk
Hacer que el navegador predeterminado de IE sea una mala idea.
Jet

Respuestas:

10

Este comando configurará IE como el navegador predeterminado:

shmgrate.exe OcinstallreinstallIE

Esta política debería evitar que las personas determinen el navegador predeterminado.

tipo slish
fuente
No hay problema. Me alegro que funcionó para usted.
slotishtype
+1 para la política también.
MDT Guy
En Windows Vista, se revisó el esquema de registro. La shmgrateherramienta solo está disponible en Windows 2000 / XP y Windows Server 2003. Además, esa política solo evitará que Internet Explorer compruebe si está configurado como el navegador predeterminado.
y31415
3

puedes probar esto, funcionará

start "" "C:\Program Files\Internet Explorer\iexplore.exe" http://server_ip/home_page

el error en su comando fue que startespera que la primera cadena entre comillas sea el título de la aplicación, que en este caso puede dejar en blanco.

para configurar iexplorer.execomo navegador web predeterminado del sistema, puede usar assocy ftypecomandos, que asocian extensiones con tipos de archivos y tipos de archivos con archivos ejecutables, de esta manera:

assoc .html=htmlfile
ftype htmlfile="C:\Program Files\Internet Explorer\iexplore.exe" %1

%1 es el argumento aquí: esa es la URL o el archivo que puede enviar al programa como entrada

easl
fuente
1
(Solo) Asociar el tipo de archivo HTML que abrirá IE no es lo mismo que configurarlo como el navegador predeterminado del sistema operativo.
Ƭᴇcʜιᴇ007
iexplore.exe, no iexplorer.exe
InterLinked
1

Windows Vista y posterior, IE 7+

El siguiente script por lotes simula hacer clic en Establecer estos programas como predeterminados desde el applet del panel de control Programas predeterminados. Probado con Vista / 7 e IE 7 / IE 11.

@echo off
setlocal enabledelayedexpansion

REM -- check XHTML support (IE 9+)
set xhtml=0
for /f %%G in ('"reg query "HKCR\IE.AssocFile.XHT" /ve 2>&1 | findstr /c:".XHT" "') do set xhtml=1

REM -- reset file extensions
set exts=HTM,HTML
if %xhtml% == 1 (set exts=%exts%,XHT,XHTML)

for %%G in (%exts%) do (
set ext=%%G
set ext=!ext:~0,3!
reg add "HKCU\Software\Classes\.%%G" /ve /t REG_SZ /d "IE.AssocFile.!ext!" /f >nul
)

set exts=%exts%,MHT,MHTML,URL
set acl=%temp%\acl_%random%%random%.txt

for %%G in (%exts%) do (
set key=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.%%G\UserChoice
echo !key! [1 7 17]>"%acl%"
regini "%acl%" >nul
set ext=%%G
set ext=!ext:~0,3!
reg add "!key!" /v "Progid" /t REG_SZ /d "IE.AssocFile.!ext!" /f >nul
)
del "%acl%" 2>nul

REM -- reset MIME associations
for %%G in (message/rfc822,text/html) do (
set key=HKCU\Software\Microsoft\Windows\Shell\Associations\MIMEAssociations\%%G\UserChoice
reg add "!key!" /v "Progid" /t REG_SZ /d "IE.%%G" /f >nul
)

REM -- reset URL protocols
for %%A in (FTP,HTTP,HTTPS) do (
set key=HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\%%A\UserChoice
reg add "!key!" /v "Progid" /t REG_SZ /d "IE.%%A" /f >nul
for %%B in (DefaultIcon,shell) do (
set key=HKCU\Software\Classes\%%A
reg delete "!key!\%%B" /f >nul 2>&1
reg copy "HKCR\IE.%%A\%%B" "!key!\%%B" /s /f >nul
reg add "!key!" /v "EditFlags" /t REG_DWORD /d 2 /f >nul
reg add "!key!" /v "URL Protocol" /t REG_SZ /d "" /f >nul
))

REM -- reset the start menu Internet link (Vista and earlier)
reg add "HKCU\Software\Clients\StartMenuInternet" /ve /t REG_SZ /d "IEXPLORE.EXE" /f

REM -- reset cached icons
if %xhtml% == 1 (
ie4uinit -cleariconcache
) else (
taskkill /im explorer.exe /f >nul
start explorer
)

pause
exit /b

Observaciones

Cualquier aplicación de navegador web puede registrarse para aparecer como cliente de Internet en el menú Inicio. Esta visibilidad, junto con el registro adecuado para los tipos de archivo y protocolo de una aplicación, le da a la aplicación el estado predeterminado del navegador. El navegador web predeterminado se utiliza para iniciar URL arbitrarias desde cualquier parte del sistema.

Nota Los registros existentes [enlace al menú de inicio] se ignoran en Windows 7 y versiones posteriores. Este registro está en desuso a partir de Windows 7.

Fuente: Cómo registrar un navegador de Internet o un cliente de correo electrónico con el menú Inicio de Windows

­­

La estructura de registro jerárquico para las asociaciones de archivos y protocolos da prioridad a los valores predeterminados por usuario sobre los valores predeterminados a nivel de máquina.

Fuente: Programas predeterminados

y31415
fuente
No restablece IE como predeterminado para mí en Windows 8.1. :(
Ƭᴇcʜιᴇ007
@ techie007 ¿Qué pasa con la configuración de Programas predeterminados en el panel de control? ¿Ha cambiado algo allí? ¿Recibió algún error al ejecutar el script por lotes?
y31415
Parece funcionar en Windows 7 (Pro, 64 bits), pero en Windows 8 (Pro 32 bits) solo muestra la salida (igual / habitual) "La operación se completó con éxito". -- "Pulse cualquier tecla para continuar . . ." pero en realidad no establece IE como predeterminado.
Ƭᴇcʜιᴇ007
En mi otra máquina con Windows 8, funcionó un poco mejor. Lo ejecuto y, la próxima vez que abro un enlace http, me pregunta qué navegador quiero usar. Esto es lo suficientemente bueno para mí, ya que parece que todos los demás fragmentos (AFAICT) piensan que IE está registrado como predeterminado después de hacer eso. Entonces ten mi generosidad. :)
Ƭᴇcʜιᴇ007
@ techie007 Olvidé por completo que Microsoft ha cambiado las reglas y ahora hay una protección antimanipulación para la mayoría de esas claves de registro. Si está dispuesto a probarlo, puedo enviarle una versión actualizada del script que simplemente eliminaría la asociación en Windows 8 y versiones posteriores para que la próxima vez que abra un enlace o un archivo html, Windows le permita elegir qué navegador para usar. Probablemente sea lo mejor que puede lograr de manera automatizada porque de todos modos se requeriría (alguna) interacción del usuario.
y31415
1

Puede agregar debajo de dos líneas en un archivo bat

reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /f /v "Check_Associations" /d "yes" /t REG_SZ

reg add "HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice" /f /v "ProgId" /d "IE.HTTP" /t REG_SZ

Después de ejecutar el bate, reiniciar / cerrar sesión y volver a iniciar sesión ya que las dos líneas de comando anteriores están destinadas a cambiar los valores del registro.

Los detalles adicionales se pueden encontrar aquí

(Solucionado) - ¡No puede configurar Internet Explorer como el navegador predeterminado! http://www.windowstechinfo.com/2016/03/fixed-cant-set-internet-explorer-as-the-default-browser.html

Aravinda
fuente
0

Simplemente suelte startpara que el comando o el archivo por lotes funcionen.

"C:\Program Files\Internet Explorer\iexplore.exe" http://server_ip/home_page
Brian
fuente
1
Estamos (bueno , de todos modos) estamos buscando soluciones para configurar el navegador predeterminado desde la línea de comandos, no solo para resolver el problema / razón de ejemplo en el OP.
Ƭᴇcʜιᴇ007
-1

Para Windows 8 (IE 10+) es fácil script VBS:

Dim URL 
Dim IE 
Set IE = CreateObject("internetexplorer.application")
URL = "res://ieframe.dll/defaultbrowser.htm" 
IE.Visible = True
IE.Navigate URL


 Do While IE.Busy
    WScript.Sleep 100
 Loop

IE.Document.getElementById("changeDefaultButton").Click

Comenzará la página de IE para cambiar IE por defecto y simulará hacer clic en el botón para aceptar.

Blaato
fuente