Imposta Internet Explorer come browser predefinito dalla riga di comando


10

È possibile impostare Internet Explorer come browser predefinito per l'avvio dalla riga di comando?

Ho un'applicazione Web che funziona solo con Internet Explorer, ma se succede che Firefox è il browser predefinito, non funziona. Gli utenti si trovano in un ambiente di dominio e anche se provo ad avviare la nostra applicazione da un batch in questo modo:

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

l'applicazione non si avvia se non cambio manualmente il browser.


4
Suppongo che "correggere l'app in modo che onori l'HTML corretto invece di rompere sotto ogni browser decente" non è un'opzione?
Shadur,

1
@Shadur Ci sono alcune sfere in cui i problemi sono visti come caratteristiche ..
Joseph Hansen,

Affidarsi a comportamenti rotti specifici per un singolo browser non è, o almeno non dovrebbe mai essere, una caratteristica.
Shadur,

@ techie007 Non l'ho provato io stesso ma puoi dare un'occhiata qui e qui .
avirk

Rendere il browser predefinito di IE è una cattiva idea.
Jet,

Risposte:


10

Questo comando imposterà IE come browser predefinito:

shmgrate.exe OcinstallreinstallIE

Questa politica dovrebbe impedire alle persone di determinare il browser predefinito.


Nessun problema. Sono contento che abbia funzionato per te.
slotishtype il

+1 anche per la polizza.
MDT Guy,

In Windows Vista lo schema di registrazione è stato revisionato. Lo shmgratestrumento è disponibile solo in Windows 2000 / XP e Windows Server 2003. Inoltre, tale criterio impedirà a Internet Explorer di verificare se è impostato come browser predefinito.
and31415

3

puoi provare questo, funzionerà

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

l'errore nel comando era che si startaspetta che la prima stringa tra virgolette sia il titolo dell'applicazione, che in questo caso è possibile lasciare vuota.

per l'impostazione iexplorer.execome browser Web predefinito del sistema, è possibile utilizzare assoce ftypecomandi che associano estensioni a tipi di file e tipi di file a file eseguibili, in questo modo:

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

%1 è l'argomento qui - ovvero l'URL o il file che è possibile inviare al programma come input


1
(Solo) Associare il tipo di file HTML che deve essere aperto da IE non equivale a impostarlo come browser predefinito del sistema operativo.
Ƭᴇcʜιᴇ007,

iexplore.exe, non iexplorer.exe
InterLinked,

1

Windows Vista e versioni successive, IE 7+

Il seguente script batch simula il clic su Imposta questi programmi come predefinito dall'applet del pannello di controllo Programmi predefiniti. Testato 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

Osservazioni

Qualsiasi applicazione browser web può registrarsi per apparire come client Internet nel menu Start. Questa visibilità, unita alla corretta registrazione per i tipi di file e di protocollo di un'applicazione, fornisce lo stato predefinito del browser di un'applicazione. Il browser Web predefinito viene utilizzato per l'avvio di URL arbitrari da qualsiasi parte del sistema.

Nota Le registrazioni esistenti [collegamento menu di avvio] vengono ignorate in Windows 7 e versioni successive. Questa registrazione è obsoleta a partire da Windows 7.

Fonte: come registrare un browser Internet o un client di posta elettronica con il menu Start di Windows

­­

La struttura gerarchica del registro per le associazioni di file e protocolli ha la precedenza sui valori predefiniti per utente rispetto ai valori predefiniti a livello di macchina.

Fonte: programmi predefiniti


Non ripristina IE come impostazione predefinita per me su Windows 8.1. :(
Ƭᴇcʜιᴇ007,

@ techie007 E le impostazioni dei Programmi predefiniti nel pannello di controllo? È cambiato qualcosa lì? Hai riscontrato errori durante l'esecuzione dello script batch?
and31415

Sembra funzionare con Windows 7 (Pro, 64 bit), ma con Windows 8 (Pro 32 bit) mostra solo l'output (stesso / normale) "Operazione completata correttamente". -- "Premere un tasto qualsiasi per continuare . . ." ma in realtà non imposta IE come predefinito.
Ƭᴇcʜιᴇ007,

Sotto la mia altra macchina Windows 8, ha funzionato un po 'meglio. Lo eseguo, e la prossima volta che apro un collegamento http, mi chiede quale browser voglio usare. Questo è abbastanza buono per me, dato che tutti gli altri pezzi sembrano (AFAICT) pensare che IE sia registrato come predefinito dopo averlo fatto. Quindi abbi la mia generosità. :)
Ƭᴇcʜιᴇ007,

@ techie007 Ho completamente dimenticato che Microsoft ha modificato le regole e ora esiste una protezione anti-manomissione per la maggior parte di quelle chiavi di registro. Se sei disposto a testarlo, posso inviarti una versione aggiornata dello script che cancellerebbe semplicemente l'associazione in Windows 8 e versioni successive in modo che la prossima volta che apri un link o un file html, Windows ti lascerà scegliere quale browser da utilizzare. Questo è probabilmente il meglio che puoi ottenere in modo automatizzato perché (alcune) interazioni dell'utente sarebbero comunque richieste.
and31415,

1

Puoi aggiungere sotto due righe in un file 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

Dopo aver eseguito il pipistrello, riavviare / disconnettersi e riconnettersi poiché sopra due righe di comando si intende modificare i valori del registro.

I dettagli aditinali possono essere trovati qui

(Risolto) -Cant imposta Internet Explorer come browser predefinito! http://www.windowstechinfo.com/2016/03/fixed-cant-set-internet-explorer-as-the-default-browser.html



0

Rilascia semplicemente il startper far funzionare il comando o il file batch.

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

1
Stiamo (beh, lo sono comunque) alla ricerca di soluzioni sull'impostazione del browser predefinito dalla riga di comando, non solo per risolvere il problema / motivo di esempio nell'OP.
Ƭᴇcʜιᴇ007,

-1

Per Windows 8 (IE 10+) è facile lo 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

Avvia la pagina IE per modificare IE come predefinito e simula il clic sul pulsante per accettare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.