2013-05-23 10 views
6

Siamo stati tutti facilmente in grado di fare ciò prima di Windows 8 (in XP/VISTA/WIN7) con poche modifiche nel Registro di sistema ed è stato fatto.Come impostare il browser predefinito in Windows 8 usando C#?

Con Windows 8 non è così facile (devo ancora capire come). Anche Windows 8 ha poche impostazioni di registro da modificare menzionate di seguito, ma con esso memorizza anche un Hash univoco per ogni computer. Qualsiasi corpo può aiutarmi a creare questo hash per ogni computer o con alcune API fornite da Microsoft per impostare il browser predefinito ("SetAppAsDefaultAll" non funziona). Di seguito sono riportate le voci del registro.

Computer \ HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts.htm \ userChoice Prog ID: IE.AssocFile.HTM Hash: XXXXXXXXXXX

Computer \ HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts.html \ userChoice Prog ID: IE.AssocFile.HTM Hash: XXXXXXXXXXX

Computer \ HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts.xht \ userChoice Prog ID: IE.AssocFile. XHT Hash: XXXXXXXXXXX

Computer \ HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts.xhtml \ userChoice Prog ID: IE.AssocFile.XHT Hash:

Computer \ HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ shell \ Associazioni \ UrlAssociations \ ftp \ userChoice Prog ID: IE.FTP Hash: XXXXXXXXXXX

Computer \ HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ shell \ Associazioni \ UrlAssociations \ http \ userChoice Prog ID: IE.HTTP Hash: XXXXXXXXXXX

Computer \ HKEY_CURRENT_USER \ Software \ Mi utilizzando MS \ WINDOWS \ Shell \ Associazioni \ UrlAssociations \ https \ userChoice Prog ID: IE.HTTPS Hash: XXXXXXXXXXX

Molte grazie in anticipo.

+1

d'accordo, in win7 o precedenti, questo non è un grosso problema. Ansioso di sapere come pure. – David

+0

Forse questo aiuta http://superuser.com/questions/498467/why-is-my-default-browser-setting-being-ignored – V4Vendetta

risposta

5

Per tutti quelli che attendono risposta a questa domanda.

Ecco qui, sembra che uno dei modi per farlo è tramite DISM.exe fornito da Win 8. Tuttavia, l'utente deve essere amministratore della macchina.

Utilizzando il codice C# si dovrebbe essere in grado di eseguire questo DISM.exe con parametri specifici.

Il seguente blog ha i dettagli.

http://blogs.technet.com/b/mrmlcgn/archive/2013/02/26/windows-8-associate-a-file-type-or-protocol-with-a-specific-app-using-a-gpo-e-g-default-mail-client-for-mailto-protocol.aspx

Grazie.

+0

Sono felice che tu abbia trovato una soluzione. È logico che l'utente debba essere in grado di automatizzare il processo - il punto è fermare le applicazioni ignorando le preferenze dell'utente, non rendere difficile l'amministrazione. –

+0

Ovviamente, il metodo di gestione utilizzato dall'amministratore è un argomento migliore per SuperUser o ServerFault. Su StackOverflow gestiamo il codice, non il criterio di gruppo. –

+1

d'accordo con Ben. Ma solo per quelli che provano a farlo per codice e non ci riescono. Questo potrebbe dire loro che non è possibile in questo modo. –

0

Credo che il motivo sia che l'utente, non il software, riesca a controllare questa impostazione.

Dovresti essere in grado di attivare il popup "Il tuo computer ha nuove applicazioni per la navigazione Web", tuttavia, in modo che l'utente possa facilmente scegliere il tuo programma se lo desidera.

+0

ha senso per quello che dici. Ma Google è in grado di farlo tramite chrome :) così anche io dovrei essere in grado di farlo :) Google Chrome imposta le stesse impostazioni del Registro di sistema tra cui Hash. –

+0

Dopo aver installato Google Chrome, viene richiesto quale browser voglio utilizzare. Non è cambiato senza il mio intervento. –

+0

appena controllato. si hai ragione. Lasciami confermare se non ci sono altre applicazioni che lo fanno senza chiedere all'utente. Se non riesco a trovarne nessuno, segnerò la tua risposta corretta. –

0

Ho chiesto anche questo e sono riuscito a trovare una soluzione, questo potrebbe essere di aiuto per voi dal momento che ho provato questo su Windows 8.1 e ha funzionato: How to set the default browser on Windows 7 using c#?

Questo in realtà si adatta a un caso in cui si desidera rendere qualsiasi programma come predefinito dei suoi protocolli ed estensioni di file.

Problemi correlati