OVH Cloud OVH Cloud

IE8 catatrophe

34 réponses
Avatar
---DGI972---
Bonjour,

C'est la cata, j'ai installé IE8 et depuis ma petite fonction
choosefile ne fonctionne plus:

fich_i = ChooseFile()

'*******************************************************************************
Function ChooseFile()
On Error Resume Next
Dim Q2, sRet
Q2 = chr(34)
ChooseFile = ""
Set IE = CreateObject("InternetExplorer.Application")
IE.visible = False
IE.Navigate("about:blank")
Do Until IE.ReadyState = 4
Loop
IE.Document.Write "<HTML><BODY><INPUT ID=" & Q2 & "Fil" & Q2 &
"Type=" & Q2 & "file" & Q2 & "></BODY></HTML>"
With IE.Document.all.Fil
.focus
.click
ChooseFile = .value
End With
IE.Quit
Set IE = Nothing
End Function
'*******************************************************************************

10 réponses

1 2 3 4
Avatar
Lotre
Bonosir,


MCI wrote:
(...)
PS : J'ai eu pas mal de problèmes avec IE-8, au début (surtout à
cause
du bug des sites sensibles). Mais, maintenant, ça va beaucoup mieux,
avec une meilleure vitesse que IE-7.




excusez mon ignorance :
C'est quoi le "Bug des sites sensibles" ?

HB
Avatar
MCI
Bonjour !

Lorsque le nombre de sites sensibles devient conséquent, IE-8 devient
lent, à l'ouverture (et pour afficher certaines pages).
Les sites sensibles sont utilisés, notamment, par SpyBot Search &
Destroy, ou SpywareBlaster. Ainsi, chez moi, IE-8 mettait près de 10 s à
s'ouvrir, et 3 à 4 secondes à répondre à la (première) connexion COM /
OLE-automation (par exemple
CreateObject("InternetExplorer.Application") ). À noter que cette
lenteur affecte également les .HTA

Heureusement, Georges () a fourni, assez vite, une solution :
http://saamu.net/topic1233.html

Maintenant, mon IE-8 s'ouvre en moins d'une seconde, et la réponse COM /
OLE-automation est inférieure au centième de seconde.

--
@-salutations
--
Michel Claveau



__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 3984 (20090402) __________

Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com
Avatar
MCI
Re !

J'ai l'explication du pourquoi cela fonctionne, chez moi.

Simplement parce que je n'utilise plus "about: blank". En effet, cela
fait pas mal de temps (de versions d'IE) que j'ai remarqué que "about:
blank" définissait mal la zone utilisée par IE. En clair,, avec "about:
blank", on est en "Zone internet".

Par contre, utiliser IE.Navigate("file:/// ... donne bien
"Intranet Local" (ou "Poste de Travail" si on l'a activé). Et, dans
cette zone, on n'a plus les restrictions d'Internet, car on travaille
bien en local.

Tente donc de créer le fichier fil.htm, contenant :
<HTML><BODY><INPUT ID="Fil" Type=file /></BODY></HTML>

Ton script devient :
fich_i = ChooseFile()
msgbox(fich_i)

Function ChooseFile()
On Error Resume Next
Dim sRet
ChooseFile = ""
Set IE = CreateObject("InternetExplorer.Application")
IE.visible = False
IE.Navigate("file:///D:/dev/vbs/fil.htm")
With IE.Document.all.Fil
.focus
.click
ChooseFile = .value
End With
IE.Quit
Set IE = Nothing
End Function



@-salutations
--
Michel Claveau



__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 3984 (20090402) __________

Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com
Avatar
Lognoul Marc [MVP]
Bonjour Michel,

Merci du retour.
C'est la raison pour laquelle j'ai pris soin de conseiller d'identifier la
zone dans laquelle le code tourne...

--
Marc [MCSE, MCTS, MVP]
[Heureux celui qui a pu pénétrer les causes secrètes des choses]
[Blog: http://www.marc-antho-etc.net/blog/]




"MCI" wrote in message
news:#
Re !

J'ai l'explication du pourquoi cela fonctionne, chez moi.

Simplement parce que je n'utilise plus "about: blank". En effet, cela
fait pas mal de temps (de versions d'IE) que j'ai remarqué que "about:
blank" définissait mal la zone utilisée par IE. En clair,, avec "about:
blank", on est en "Zone internet".

Par contre, utiliser IE.Navigate("file:/// ... donne bien "Intranet
Local" (ou "Poste de Travail" si on l'a activé). Et, dans cette zone, on
n'a plus les restrictions d'Internet, car on travaille bien en local.

Tente donc de créer le fichier fil.htm, contenant :
<HTML><BODY><INPUT ID="Fil" Type=file /></BODY></HTML>

Ton script devient :
fich_i = ChooseFile()
msgbox(fich_i)

Function ChooseFile()
On Error Resume Next
Dim sRet
ChooseFile = ""
Set IE = CreateObject("InternetExplorer.Application")
IE.visible = False
IE.Navigate("file:///D:/dev/vbs/fil.htm")
With IE.Document.all.Fil
.focus
.click
ChooseFile = .value
End With
IE.Quit
Set IE = Nothing
End Function



@-salutations
--
Michel Claveau



__________ Information provenant d'ESET NOD32 Antivirus, version de la
base des signatures de virus 3984 (20090402) __________

Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com




__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3983 (20090402) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus signature database 3983 (20090402) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
Avatar
---DGI972---
MCI avait écrit le 03/04/2009 :
Re !

J'ai l'explication du pourquoi cela fonctionne, chez moi.

Simplement parce que je n'utilise plus "about: blank". En effet, cela fait
pas mal de temps (de versions d'IE) que j'ai remarqué que "about: blank"
définissait mal la zone utilisée par IE. En clair,, avec "about: blank", on
est en "Zone internet".

Par contre, utiliser IE.Navigate("file:/// ... donne bien "Intranet
Local" (ou "Poste de Travail" si on l'a activé). Et, dans cette zone, on n'a
plus les restrictions d'Internet, car on travaille bien en local.

Tente donc de créer le fichier fil.htm, contenant :
<HTML><BODY><INPUT ID="Fil" Type=file /></BODY></HTML>

Ton script devient :
fich_i = ChooseFile()
msgbox(fich_i)

Function ChooseFile()
On Error Resume Next
Dim sRet
ChooseFile = ""
Set IE = CreateObject("InternetExplorer.Application")
IE.visible = False
IE.Navigate("file:///D:/dev/vbs/fil.htm")
With IE.Document.all.Fil
.focus
.click
ChooseFile = .value
End With
IE.Quit
Set IE = Nothing
End Function



@-salutations



YES WE CAN
Bravo
Cela fonctionne correctement sur IE8.
Reste a vérifier si sur IE7 cette nouvelle version de
chooseFile()fonctionne aussi.
Avatar
MCI
Salut !

j'ai pris soin de conseiller d'identifier la zone dans laquelle le
code tourne...



Très bon conseil, que j'aurais dû suivre, il y a quelques temps. Mais,
ce n'est pas facile de savoir dans quelle zone IE se trouve. Surtout
avec des protocole comme "about: " ou des protocoles personnalisés.

Sinon, j'espère que ma tentative d'humour dyslexique, utilisant ton
prénom, ne t'aura pas froissé...

@-salutations
--
Michel Claveau


__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 3985 (20090403) __________

Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com
Avatar
MCI
Re !

Cela fonctionne correctement sur IE8.
Reste a vérifier si sur IE7 cette nouvelle version de
chooseFile()fonctionne aussi.



Pas de problème ; ça fonctionne aussi bien avec IE-8, IE-7 et IE-6.
Et, tant qu'on y est, je vais approfondir un peu cette / la / ta
démarche.

Quitte à utiliser un fichier .html comme "chausse-pied" (boot) pour
exploiter IE, je me suis dis qu'il serait intéressant de mettre plus de
choses (ré)-utilisables dedans. Donc, je me suis construit un fichier
avec des fonctions JScript (beaucoup), des fonctions VBScript (un peu),
des objets HTML tout prêts, des feuilles de style, etc. Du coup, cela
me procure une libraire toute prête. Librairie d'autant plus facile à
utiliser que l'on peut appeler des fonctions JScript (et/ou VBscript),
incluses dans la page HTML, depuis le script qui pilote IE. On peut
aussi lire/écrire des variables (des objets, pour JScript).

Ensuite, Je me suis dis que c'était bête d'ouvrir et fermer IE à chaque
fois que l'on en avait besoin. Comme j'avais vu qu'il était possible de
se connecter à une instance d'IE déjà ouverte, plutôt que d'en ouvrir
une nouvelle, je laisse IE avec son fichier "chausse-pied", ouvert de
façon permanente (mais en mode invisible).

Un autre intérêt, c'est que les variables modifiées conservent leur
valeur (puisque l'instance d'IE reste ouverte). Ce qui permet de gérer
des données persistantes, sans passer par le disque dur, et sans être
brimé par les antivirus.

En plus, cette instance devient accessible depuis plusieurs scripts /
langages / logiciels. Ce qui permet d'échanger des choses, entre des
scripts différents, avec des macros Excel, des HTA, des scripts en
python, ou d'autres logiciels...

Au passage, je remercie Jean (de Belgique), qui m'avais montré comment
se connecter avec un .HTA, sur un IE déjà ouvert. À partir de là, j'ai
exploré de nombreuses voies très intéressantes, comme l'injection par
callback de nouvelles fonctions, ou l'auto-contrôle croisé des instances
(c'est presque comme si on écrivait un virus), ou des trucs encore plus
tordus...

J'espère que cela t'aura donné quelques idées, sur l'utilisation de
cette voie, extrêmement riche à explorer.


Par contre, avec IE-8, je me suis fait vraiment peur. Avant la solution
des "sites sensibles", certains scripts étaient plus de cent fois plus
lents. Durant un week-end entier, j'ai angoissé dur...
De plus, à chaque évolution de IE, je tremble, à l'idée qu'un (nouveau)
dispositif (dit "de sécurité", ou "nouveauté", ...) bloque le
fonctionnement. Par exemple, le jour où Microsoft a déclaré
Direct-Animation sécuritairement incorrect (1), j'ai eu des dizaines de
scripts qui ont cessé de fonctionner. L'histoire du "C:fakepath" est du
même genre.

Suite à ce week-end hyper-stressé, j'ai mis en suspens tout un pan de
mes projets en développement. Et j'explore quelques autres voies, au
moins pour alimenter ma réflexion.


@+
--
Michel Claveau





(1) on ne m'enlèvera pas l'idée que la sécurité était un prétexte, pour
éliminer un concurrent potentiellement dangereux pour Silverlight. Car
DA (Direct-Animation) avait de nombreuses possibilités d'animation
graphique du même genre...

































.





__________ Information provenant d'ESET NOD32 Antivirus, version de la base des signatures de virus 3985 (20090403) __________

Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com
Avatar
Lognoul Marc [MVP]
> Très bon conseil, que j'aurais dû suivre, il y a quelques temps. Mais, ce
n'est pas facile de savoir dans quelle zone IE se trouve. Surtout avec des
protocole comme "about: " ou des protocoles personnalisés.


Entièrement d'accord, c'est une partie très mal documentée d'IE

Sinon, j'espère que ma tentative d'humour dyslexique, utilisant ton
prénom, ne t'aura pas froissé...


Mais non et puis c'est de bonne guerre, j'ai du t'envoyer qq vannes sur les
conducteurs de 4x4 par le passé ;)

Marc


__________ Information from ESET NOD32 Antivirus, version of virus signature database 3985 (20090403) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
Avatar
Lotre
Bonsoir,


Ok
merci de la précision

Ainsi, ceusses qui se plaignaient de soudaines et impardonnables
lenteurs
étaient sans doute les utilisateurs de produits comme SpyBot et/ou
SpywareBaster
qui ont une liste des sites "sensibles" imposante...

Ceci étant, je me souviens qu'avec IE6, il y avait aussi un réglage à
modifier
dans IE pour utiliser un "gros" fichier host sans provoquer des
lenteurs.
La méthode était fournie systématiquement avec les nouvelles versions
du fichier host entretenu par les MVP-"anglophones" je crois....

HB

MCI wrote:
Bonjour !

Lorsque le nombre de sites sensibles devient conséquent, IE-8
devient
lent, à l'ouverture (et pour afficher certaines pages).
Les sites sensibles sont utilisés, notamment, par SpyBot Search &
Destroy, ou SpywareBlaster. Ainsi, chez moi, IE-8 mettait près de 10
s à s'ouvrir, et 3 à 4 secondes à répondre à la (première) connexion
COM / OLE-automation (par exemple
CreateObject("InternetExplorer.Application") ). À noter que cette
lenteur affecte également les .HTA

Heureusement, Georges () a fourni, assez vite, une solution
:
http://saamu.net/topic1233.html

Maintenant, mon IE-8 s'ouvre en moins d'une seconde, et la réponse
COM / OLE-automation est inférieure au centième de seconde.

--
@-salutations
--
Michel Claveau



__________ Information provenant d'ESET NOD32 Antivirus, version de
la base des signatures de virus 3984 (20090402) __________
Le message a été vérifié par ESET NOD32 Antivirus.

http://www.eset.com


Avatar
Lognoul Marc [MVP]
Bonjour,

La plupart des "trucs et astuces" se trouvent sur cette page:
http://www.mvps.org/winhelp2002/hosts.htm

Ceci étant, je me souviens qu'avec IE6, il y avait aussi un réglage à
modifier
dans IE pour utiliser un "gros" fichier host sans provoquer des lenteurs.
La méthode était fournie systématiquement avec les nouvelles versions
du fichier host entretenu par les MVP-"anglophones" je crois....



Une des astuces consistait à utiliser l'adresse 0 au lieu de 127.0.0.1 ou
0.0.0.0 MAIS cela semble ne plus fonctionner depuis l'installation d'une MAJ
Windows (rapporté par le MVP Mitch Tulloch).

Une autre problème rallentissant le démarrage de IE8 et l'ouverture de
chaque nouvel onlget, c'est le fait que, comme signalé par Michel (MCI),
chaque onglet est un nouveau processus.
Jusque là, rien de dramatique, quoiqu'un nouveau processus, c'est plus lourd
qu'un simple thread évidemment. Mais cela se gâte quand chaque nouveau
processus doit démarrer un processus sous-jacent comme par ex, l'outil de
MAJ automatique pour le runtime JAVA...

--
Marc [MCSE, MCTS, MVP]
[Heureux celui qui a pu pénétrer les causes secrètes des choses]
[Blog: http://www.marc-antho-etc.net/blog/]




__________ Information from ESET NOD32 Antivirus, version of virus signature database 3988 (20090404) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
1 2 3 4