Page 1 sur 1
[R] Détecter l'installation de navigateurs
Posté : jeu. 12 févr. 2015 13:14
par Asardex
Bonjour à tous !
Alors voilà mon problème : Je voudrais savoir si tel ou tel navigateur (Chrome, Firefox, Safari ...) est installé sur une machine lambda.
En effet, je voudrais dans la mesure du possible lancer un navigateur, en ayant une liste de préférence (donc ne pas forcément lancer le navigateur par défaut). En clair, si plusieurs sont installés, je ne lance que celui que je préfère.
Autre question, au passage, est-il possible de lancer un navigateur sans en connaitre son dossier d'installation (par exemple : "C:\programmes\chrome\chrome.exe") ?
Merci de votre réponse,
Bonne journée à tous !
Re: [..] Détecter l'installation de navigateurs
Posté : jeu. 12 févr. 2015 14:40
par timmalos
A mon avis le meilleur moyen est de lire le registre avec les clés suivantes:
Vous trouverez un dossier pour chaque navigateur installé, et pour un chacun un dossier shell-> open -> command -> (par défaut) de type REG_SZ avec le Path vers l'executable à lancer.
par exemple pour Chrome chez moi :
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\Google Chrome\shell\open\command]
@="\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\""
Et pour IE :
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\IEXPLORE.EXE\shell\open\command]
@="C:\\Program Files\\Internet Explorer\\iexplore.exe"
Re: [..] Détecter l'installation de navigateurs
Posté : jeu. 12 févr. 2015 14:50
par Asardex
Merci beaucoup, c'est vrai que j'aurais dû (encore une fois) m'orienter vers le registre ...
Encore merci de votre aide, en espérant que ça puisse servir à quelqu'un d'autre que moi , un jour !

Re: [R] Détecter l'installation de navigateurs
Posté : jeu. 12 févr. 2015 15:42
par orax
Pour IE sur un Windows 8.1, dans StartMenuInternet je n'ai pas le chemin complet du .exe ("C:\\Program Files\\Internet Explorer\\iexplore.exe"), j'ai juste "iexplore.exe". Ce qui veut dire qu'avec Run() ça ne pourrait fonctionner. Mais avec
ShellExecute() ça va.
Code : Tout sélectionner
$iexplore=RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\IEXPLORE.EXE\shell\open\command', '') ; iexplore.exe
ConsoleWrite($iexplore & @CRLF)
;~ Run($iexplore) ; erreur !
ShellExecute($iexplore)
D'après ce que j'ai lu là
(MSDN) Application Registration, si ShellExecute ne trouve pas l'exécutable, il va chercher, en dernier recours, son chemin dans l'une des ces clés :
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths ou
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths.
C'est pratique puisque de cette façon on peut exécuter un logiciel même si l'exécutable n'est pas dans le "PATH". Par exemple si je tape
chrome dans Démarrer > Exécuter (ou WIN+R), il exécute bien Google Chrome.
Re: [R] Détecter l'installation de navigateurs
Posté : jeu. 12 févr. 2015 17:52
par Asardex
Ayant un w8.1, je me suis empressé de vérifier, et j'ai bien, pour ma part, le chemin complet de IE (C:\\Program Files\\Internet Explorer\\iexplore.exe) dans le registre "HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\IEXPLORE.EXE\shell\open\command" ...
M'enfin, si avec ShellExecute() ça résout le problème pour lancer le navigateur, bah il n'y a plus de problème ^^
Merci encore à tous, vous m'avez, une fois de plus, été d'une grande aide !