Bonjour,
Il n'y a pas de remède miracle, il faut juste se poser les bonnes questions dès le départ ......
--> Déjà il faut savoir si ta problématique concerne uniquement l'exécution d'une url à partir d'un navigateur spécifié (Chrome, Opéra, Mozilla, Edge, IE, etc...) ????
Lequel cas il te faudra énumérer exhaustivement tous les navigateur existants pour connaitre l'emplacement de l'exécutable, exemple :
- pour chrome sur OS x32 : "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ou OS X64 : "C:\Program Files\Google\Chrome\Application\chrome.exe"
- Pour IE sur OS x86 : "C:\Program Files (x86)\Internet Explorer\iexplore.exe" ou OS X64 : "C:\Program Files\Internet Explorer\iexplore.exe"
Pour énumérer les applications installées sur l'OS tu peux parcourir la clé de registre suivante :
- Pour OS x64 :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
et/ou
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
- Pour OS x32 :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
--> Veux-tu que ton url soit exécutée depuis le navigateur par défaut de l'utilisateur ???
Lequel cas il faut que tu parcours la base de registre pour savoir si l'utilisateur a déterminer un navigateur par défaut sinon tu utilises IE car il existe dans tous les OS Windows :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
Public Shared sub ExecUrl()
Process.Start(GetDefaultBrowserPath,"TON_URL")
End Sub
Public Shared Function GetDefaultBrowserPath() As String
Dim defaultBrowserPath As String = String.Empty
Dim regkey As RegistryKey = Nothing
Try
regkey = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\shell\Associations\UrlAssociations\http\UserChoice", False)
If regkey IsNot Nothing Then
Dim ProgId = regkey.GetValue("Progid").ToString()
regkey = Registry.ClassesRoot.OpenSubKey(ProgId & "\Shell\open\command", False)
defaultBrowserPath = If(Not regkey Is Nothing,
regkey.GetValue("").ToString(),
Registry.ClassesRoot.OpenSubKey("HTTP\Shell\open\command", False).GetValue("").ToString())
Else
defaultBrowserPath = Registry.ClassesRoot.OpenSubKey("HTTP\Shell\open\command", False).GetValue("").ToString()
End If
Catch ex As Exception
Finally
If Not regkey Is Nothing Then regkey.Close()
End Try
Return CleanupPath(defaultBrowserPath)
End Function
Private Shared Function CleanupPath(path$) As String
path = path.ToLower().Replace("""", "")
If Not path.EndsWith(".exe") Then
path = path.Substring(0, path.LastIndexOf(".exe", StringComparison.Ordinal) + ".exe".Length)
End If
Return path
End Function |
++
Partager