Lorsque j'ai demandé this question j'ai accepté la réponse parce que c'était logique et la documentation pointait était bonne.TWebBrowser et IE version
Test d'une machine avec IE6 contre un autre avec IE7 avec le même exécutable compilé utilisant TWebBrowser le comportement était en effet aussi pointé dans la réponse.
Maintenant, je remets la réponse dans le doute, dans une machine avec IE8 que le même exécutable est identifié comme IE7 par le serveur. J'ai écrit une application simple rails qui pirnts l'agent utilisateur et il est clair. Dans la même machine si j'accéder à ce rails app dans IE il imprime:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6.5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729)
Lorsque je avoir accès à l'aide de ce fichier exécutable:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; GTB6.5; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 3.0.30729)
De plus, avec un peu d'aide de mon ami Process Monitor je me suis aperçu que le classid appelé pour instancier le TWebBrowser est {8856F961-340A-11D0-A96B-00C04FD705A2} qui dans le registre de Windows a le nom "Microsoft Web Browser" et pointe vers ieframe.dll.
Maintenant les choses deviennent un peu plus étranges. Si je vais à system32/ieframe.dll et vérifie la version ... 8.0.
Je suis vraiment confus. La question est: Quand j'utilise TWebBrowser, quelle version de ie sera utilisée, en effet?
Merci.
IE9 utilise de nouvelles constantes (9000 et 9999) avec des significations semblables aux constantes IE8 (8000 et 8888) – EricLaw
@EricLaw: Par curiosité, savez-vous si l'une de ces valeurs peut être utilisée pour signifier "plus récent"? IE, IE8 rendu si l'utilisateur a IE8 et IE9 rendu si l'utilisateur a IE9? –
Excellente question; J'ai demandé aux propriétaires l'autre jour et je n'ai pas entendu. Shoot me mail (ericlaw @ microsoft) et je m'assurerai de revenir vers vous (et ici!). – EricLaw