titre parle tout cela.comment puis-je changer navigateur par défaut en utilisant C# ou fichier batch
Répondre
Je pense que vous devez modifier atleast deux RegistryKeys et définir le chemin du navigateur alternatif:
HKEY_CLASSES_ROOT\http\shell\open\command
HKEY_CLASSES_ROOT\htmlfile\shell\open\command
Un alternative peut être de créer une entrée supplémentaire sous la clé Shell et le définir comme l'action par défaut :
[HKEY_CLASSES_ROOT\http\shell]
(default) set to OpenWithMyBrowser
[HKEY_CLASSES_ROOT\http\shell\OpenWithMyBrowser\command]
(default) set to "MyBrowser.exe"
C'était très utile merci. –
Le navigateur par défaut est enregistré en tant qu'entrée dans la clé de Registre de Windows. Les valeurs sont enregistrées sur une base de protocole comme celui-ci
HKEY_CLASSES_ROOT \ [protocole] \ shell \ open \ command
Où protocole peut être http, https, etc. sur la façon d'accéder/modifier registre valeurs à l'intérieur de C#, vous pouvez jeter un oeil à this article
pour les PC windows 7, vous devez changer la clé de registre pour le
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\ Associations\UrlAssociations\http
vous pouvez changer cela en utilisant C#
RegistryKey regkey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\shell\\Associations\\UrlAssociations\\http\\UserChoice", true);
string browser = regkey.GetValue("Progid").ToString();
if (browser != "IE.HTTP")
{
regkey.SetValue("Progid", "IE.HTTP");
}
pour avant vista os - (vérifié dans Windows XP)
RegistryKey regkey = Registry.ClassesRoot.OpenSubKey("http\\shell\\open\\command", true);
string browser = regkey.GetValue(null).ToString().ToLower().Replace("\"", "");
string defBrowser = "";
if (!browser.EndsWith("exe"))
{
//get rid of everything after the ".exe"
browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4);
defBrowser = browser.Substring(browser.LastIndexOf("\\") + 1);
}
if (defBrowser != "iexplore")
{
Process.Start("IExplore.exe");
ScreenScraperEngine.Instance.Wait(2000);
string iepath = "";
foreach (Process p in Process.GetProcesses())
{
if (p.ProcessName == "IEXPLORE")
{
iepath = p.MainModule.FileName;
}
}
if (iepath != "")
{
string iepathval = "\"" + iepath + "\" -nohome";
regkey.SetValue(null, iepathval);
}
}
Pouvez-vous ajouter quelques détails sur * pourquoi * vous essayez de le faire pour donner un peu de contexte ? – jerryjvl
Je pourrais utiliser un moyen rapide de basculer navigateur par défaut lors du développement. – Nifle
Pourquoi aurait-il besoin de donner des détails? La question est simple. – msbg