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
Lognoul Marc [MVP]
Mes excuses à tous les deux, je me suis contenté de tester la sélection, pas
de l'exploiter.

Pour me faire pardonner, voici la solution: Modifiez la sécurité liée à la
zone dans laquelle votre code tourne (Internet ou Local par ex) et réactivez
la fonction qui retourne le chemin complet.
Voir http://www.cijoint.fr/cjlink.php?file=cj200903/cijhBi7JSN.png

Si votre environnement est gérable par stratégies de groupe, aucun problème
pour déployer ce changement en utilisant l'IEAK de IE8.

--
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/]


"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in message
news:
Lognoul Marc [MVP] a écrit :
Bonjour,

En effet comdlg n'est pas disponible automatiquement mais Le shell offre
presque la même fonction, eklle est juste un peu moins "riche". Exemple:
Const WINDOW_HANDLE = 0
Const BIF_BROWSEINCLUDEFILES = &H4000&
Set objShell = CreateObject("Shell.Application")
Set objFileOrFolder= objShell.BrowseForFolder(WINDOW_HANDLE, "Select a
File:", BIF_BROWSEINCLUDEFILES, "C: ")

--
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/]



"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in message
news:
Lognoul Marc [MVP] a écrit :
En effet, le path renvoyé commence toujours par "c:fakepath...", très
étrange!

Avez-vous testé avec le mode protégé désactivé?

Pourquoi passez-vous par un IE pour sélectionner un fichier?

--
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/]




"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in message
news:
Lognoul Marc [MVP] avait énoncé :
Bonjour,

Sous Vista SP2 avec un utilisateur normal, cela fonctionne chez
moi...

Quel est le message d'erreur?

--
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/]


"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in
message news:
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
'*******************************************************************************



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



bonjour,
Sous vista SP2 aussi
J'ai:
Script: C:PROGtestfich.vbs
Ligne: 10
Caract: 1
Erreur: chemin d'accés introuvable
Code: 800A004C
Source: Erreur d'exécution Microsoft VBScript

et la ligne est égale a:
Set oFilein=oFs.OpenTextFile(fich_i)

et c'est depuis la Maj d'IE8 (mais pourquoi donc j'ai installé ça) je
suis très embêté.



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



Bonjour

Merci je ne suis pas encore fou alors ...

Comment désactiver le mode protégé avec IE8 ?

Je passe par IE pour sélectionner un fichier car j'ai un parc de PC
hétérogène et c'était le solution miraculeuse de w2k a w2k3.
Je n'aime pas trop le CommonDialog car il faut mettre des dll et les
enregistrer par un regsvr non ?

Cordialement



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



Je sens encore la galère ...
J'ai testé ce bout de code
Il marche sous w2k pas sous Xp


Const WINDOW_HANDLE = 0
Const BIF_BROWSEINCLUDEFILES = &H4000&
Set objShell = CreateObject("Shell.Application")
Set objFileOrFolder= objShell.BrowseForFolder(WINDOW_HANDLE, "Choisir le
fichier:", BIF_BROWSEINCLUDEFILES, "C:METEOR")
Set objFileOrFolderItem = objFileOrFolder.Self
objPath = objFileOrFolderItem.Path
wscript.echo objpath



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
Avatar
Gilles LAURENT [MVP]
"Lognoul Marc [MVP]" a écrit dans le message de
news:%
| Mes excuses à tous les deux, je me suis contenté de tester la
| sélection, pas de l'exploiter.

Pas de problème ;-)

| Pour me faire pardonner, voici la solution: Modifiez la sécurité liée
| à la zone dans laquelle votre code tourne (Internet ou Local par ex)
| et réactivez la fonction qui retourne le chemin complet.

Un grand Merci pour cette solution de contournement (Je n'ai toujours
pas installé IE8). Je pense toutefois qu'il est nécessaire de s'appuyer
sur les nouvelles specifications du DOM HTML 5.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
---DGI972---
Lognoul Marc [MVP] a écrit :
Mes excuses à tous les deux, je me suis contenté de tester la sélection, pas
de l'exploiter.

Pour me faire pardonner, voici la solution: Modifiez la sécurité liée à la
zone dans laquelle votre code tourne (Internet ou Local par ex) et réactivez
la fonction qui retourne le chemin complet.
Voir http://www.cijoint.fr/cjlink.php?file=cj200903/cijhBi7JSN.png

Si votre environnement est gérable par stratégies de groupe, aucun problème
pour déployer ce changement en utilisant l'IEAK de IE8.

--
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/]


"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in message
news:
Lognoul Marc [MVP] a écrit :
Bonjour,

En effet comdlg n'est pas disponible automatiquement mais Le shell offre
presque la même fonction, eklle est juste un peu moins "riche". Exemple:
Const WINDOW_HANDLE = 0
Const BIF_BROWSEINCLUDEFILES = &H4000&
Set objShell = CreateObject("Shell.Application")
Set objFileOrFolder= objShell.BrowseForFolder(WINDOW_HANDLE, "Select a
File:", BIF_BROWSEINCLUDEFILES, "C: ")

--
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/]



"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in message
news:
Lognoul Marc [MVP] a écrit :
En effet, le path renvoyé commence toujours par "c:fakepath...", très
étrange!

Avez-vous testé avec le mode protégé désactivé?

Pourquoi passez-vous par un IE pour sélectionner un fichier?

--
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/]




"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in message
news:
Lognoul Marc [MVP] avait énoncé :
Bonjour,

Sous Vista SP2 avec un utilisateur normal, cela fonctionne chez moi...

Quel est le message d'erreur?

--
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/]


"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in message
news:
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
'*******************************************************************************



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



bonjour,
Sous vista SP2 aussi
J'ai:
Script: C:PROGtestfich.vbs
Ligne: 10
Caract: 1
Erreur: chemin d'accés introuvable
Code: 800A004C
Source: Erreur d'exécution Microsoft VBScript

et la ligne est égale a:
Set oFilein=oFs.OpenTextFile(fich_i)

et c'est depuis la Maj d'IE8 (mais pourquoi donc j'ai installé ça) je
suis très embêté.



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



Bonjour

Merci je ne suis pas encore fou alors ...

Comment désactiver le mode protégé avec IE8 ?

Je passe par IE pour sélectionner un fichier car j'ai un parc de PC
hétérogène et c'était le solution miraculeuse de w2k a w2k3.
Je n'aime pas trop le CommonDialog car il faut mettre des dll et les
enregistrer par un regsvr non ?

Cordialement



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



Je sens encore la galère ...
J'ai testé ce bout de code
Il marche sous w2k pas sous Xp


Const WINDOW_HANDLE = 0
Const BIF_BROWSEINCLUDEFILES = &H4000&
Set objShell = CreateObject("Shell.Application")
Set objFileOrFolder= objShell.BrowseForFolder(WINDOW_HANDLE, "Choisir le
fichier:", BIF_BROWSEINCLUDEFILES, "C:METEOR")
Set objFileOrFolderItem = objFileOrFolder.Self
objPath = objFileOrFolderItem.Path
wscript.echo objpath



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus signature
database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



Trop tard j'ai désinstallé IE8 et vous voulez rire:
Ca marche tjrs pas ...
Je vais ré installer IE8 et voir si cela fonctionne avec votre option a
cocher dans la sécutité d'IE8 (je vous tiendrais au courant).

Merci

Je peux poser une question subsidiaire ?
C'est la dll comdlg32.dll ou l'ocx qu'il faut enregistrer avec
regsrv32.exe pour que le commonDialog fonctionne sur n'importe quel PC
?
Avatar
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
| Je peux poser une question subsidiaire ?
| C'est la dll comdlg32.dll ou l'ocx qu'il faut enregistrer avec
| regsrv32.exe pour que le commonDialog fonctionne sur n'importe quel PC
| ?

C'est le composant comdlg32.ocx. Toutefois ce composant nécessite une
licence pour pouvoir être manipulé en scripting sinon vous obtiendrez
l'erreur 80040112 lors de son instanciation. Une solution de
contournement consiste à invoquer l'api Win32 GetOpenFileName via le
wrapper Dynawrap :

GetOpenFileName :
http://msdn.microsoft.com/en-us/library/ms646927(VS.85).aspx

DynaWrap - DynaCall Wrapper :
http://glsft.free.fr/index.php?option=com_content&task=view&idG&Itemid3

--- CodeSnippet.vbs ---
Function ChooseFile (sInitPath)
Set oDyn=CreateObject("DynamicWrapper")
oDyn.Register "ComDlg32.dll", "GetOpenFileNameW", "r=b", "i=l"
sOpenFileName=String(76/2, Chr(0))
sFileName=String(256, Chr(0))
dwBSTRAddr=oDyn.GetBSTRAddr(sOpenFileName)
oDyn.SetMemInBSTRAddr dwBSTRAddr,0,4,76
oDyn.SetMemInBSTRAddr dwBSTRAddr,28,4,oDyn.GetBSTRAddr(sFileName)
oDyn.SetMemInBSTRAddr dwBSTRAddr,32,4,256
oDyn.SetMemInBSTRAddr dwBSTRAddr,44,4,oDyn.GetBSTRAddr(sInitPath)
oDyn.SetMemInBSTRAddr dwBSTRAddr,52,4,4096 Or 4
oDyn.GetOpenFileNameW(dwBSTRAddr)
ChooseFile=Replace(sFileName, Chr(0), "")
End Function

sFile=ChooseFile("D:Test")
WScript.Echo "[" & sFile & "]"
--- CodeSnippet.vbs ---

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
---DGI972---
Lognoul Marc [MVP] avait énoncé :
Mes excuses à tous les deux, je me suis contenté de tester la sélection, pas
de l'exploiter.

Pour me faire pardonner, voici la solution: Modifiez la sécurité liée à la
zone dans laquelle votre code tourne (Internet ou Local par ex) et réactivez
la fonction qui retourne le chemin complet.
Voir http://www.cijoint.fr/cjlink.php?file=cj200903/cijhBi7JSN.png

Si votre environnement est gérable par stratégies de groupe, aucun problème
pour déployer ce changement en utilisant l'IEAK de IE8.

--
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/]


"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in message
news:
Lognoul Marc [MVP] a écrit :
Bonjour,

En effet comdlg n'est pas disponible automatiquement mais Le shell offre
presque la même fonction, eklle est juste un peu moins "riche". Exemple:
Const WINDOW_HANDLE = 0
Const BIF_BROWSEINCLUDEFILES = &H4000&
Set objShell = CreateObject("Shell.Application")
Set objFileOrFolder= objShell.BrowseForFolder(WINDOW_HANDLE, "Select a
File:", BIF_BROWSEINCLUDEFILES, "C: ")

--
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/]



"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in message
news:
Lognoul Marc [MVP] a écrit :
En effet, le path renvoyé commence toujours par "c:fakepath...", très
étrange!

Avez-vous testé avec le mode protégé désactivé?

Pourquoi passez-vous par un IE pour sélectionner un fichier?

--
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/]




"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in message
news:
Lognoul Marc [MVP] avait énoncé :
Bonjour,

Sous Vista SP2 avec un utilisateur normal, cela fonctionne chez moi...

Quel est le message d'erreur?

--
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/]


"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> wrote in message
news:
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
'*******************************************************************************



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



bonjour,
Sous vista SP2 aussi
J'ai:
Script: C:PROGtestfich.vbs
Ligne: 10
Caract: 1
Erreur: chemin d'accés introuvable
Code: 800A004C
Source: Erreur d'exécution Microsoft VBScript

et la ligne est égale a:
Set oFilein=oFs.OpenTextFile(fich_i)

et c'est depuis la Maj d'IE8 (mais pourquoi donc j'ai installé ça) je
suis très embêté.



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



Bonjour

Merci je ne suis pas encore fou alors ...

Comment désactiver le mode protégé avec IE8 ?

Je passe par IE pour sélectionner un fichier car j'ai un parc de PC
hétérogène et c'était le solution miraculeuse de w2k a w2k3.
Je n'aime pas trop le CommonDialog car il faut mettre des dll et les
enregistrer par un regsvr non ?

Cordialement



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



Je sens encore la galère ...
J'ai testé ce bout de code
Il marche sous w2k pas sous Xp


Const WINDOW_HANDLE = 0
Const BIF_BROWSEINCLUDEFILES = &H4000&
Set objShell = CreateObject("Shell.Application")
Set objFileOrFolder= objShell.BrowseForFolder(WINDOW_HANDLE, "Choisir le
fichier:", BIF_BROWSEINCLUDEFILES, "C:METEOR")
Set objFileOrFolderItem = objFileOrFolder.Self
objPath = objFileOrFolderItem.Path
wscript.echo objpath



__________ Information from ESET NOD32 Antivirus, version of virus
signature database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com






__________ Information from ESET NOD32 Antivirus, version of virus signature
database 3977 (20090331) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com



Bonjour,

Alors je résume un peu:
Shell marche bien sauf en XP.
comdlg32 est sous licence.
Avec IE ca marche bien sur tous les os mais surtout ne pas installer
IE8 mais en faisant marche arrière (IE7) et même modifiant le niveau de
sécurité (testé sous vista et XP).

Super non ?
Avatar
---DGI972---
Le 01/04/2009, Gilles LAURENT [MVP] a supposé :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
Je peux poser une question subsidiaire ?
C'est la dll comdlg32.dll ou l'ocx qu'il faut enregistrer avec
regsrv32.exe pour que le commonDialog fonctionne sur n'importe quel PC
?



C'est le composant comdlg32.ocx. Toutefois ce composant nécessite une
licence pour pouvoir être manipulé en scripting sinon vous obtiendrez
l'erreur 80040112 lors de son instanciation. Une solution de
contournement consiste à invoquer l'api Win32 GetOpenFileName via le
wrapper Dynawrap :

GetOpenFileName :
http://msdn.microsoft.com/en-us/library/ms646927(VS.85).aspx

DynaWrap - DynaCall Wrapper :
http://glsft.free.fr/index.php?option=com_content&task=view&idG&Itemid3

--- CodeSnippet.vbs ---
Function ChooseFile (sInitPath)
Set oDyn=CreateObject("DynamicWrapper")
oDyn.Register "ComDlg32.dll", "GetOpenFileNameW", "r=b", "i=l"
sOpenFileName=String(76/2, Chr(0))
sFileName=String(256, Chr(0))
dwBSTRAddr=oDyn.GetBSTRAddr(sOpenFileName)
oDyn.SetMemInBSTRAddr dwBSTRAddr,0,4,76
oDyn.SetMemInBSTRAddr dwBSTRAddr,28,4,oDyn.GetBSTRAddr(sFileName)
oDyn.SetMemInBSTRAddr dwBSTRAddr,32,4,256
oDyn.SetMemInBSTRAddr dwBSTRAddr,44,4,oDyn.GetBSTRAddr(sInitPath)
oDyn.SetMemInBSTRAddr dwBSTRAddr,52,4,4096 Or 4
oDyn.GetOpenFileNameW(dwBSTRAddr)
ChooseFile=Replace(sFileName, Chr(0), "")
End Function

sFile=ChooseFile("D:Test")
WScript.Echo "[" & sFile & "]"
--- CodeSnippet.vbs ---



Merci gilles

J'ai trouvé ça aussi (pas encore essayé):
http://home.hccnet.nl/p.vd.klugt/

Mais je vais essayé aussi la dll wshdialog.dll de dynawrap.
Avatar
---DGI972---
Gilles LAURENT [MVP] a écrit :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
Je peux poser une question subsidiaire ?
C'est la dll comdlg32.dll ou l'ocx qu'il faut enregistrer avec
regsrv32.exe pour que le commonDialog fonctionne sur n'importe quel PC
?



C'est le composant comdlg32.ocx. Toutefois ce composant nécessite une
licence pour pouvoir être manipulé en scripting sinon vous obtiendrez
l'erreur 80040112 lors de son instanciation. Une solution de
contournement consiste à invoquer l'api Win32 GetOpenFileName via le
wrapper Dynawrap :

GetOpenFileName :
http://msdn.microsoft.com/en-us/library/ms646927(VS.85).aspx

DynaWrap - DynaCall Wrapper :
http://glsft.free.fr/index.php?option=com_content&task=view&idG&Itemid3

--- CodeSnippet.vbs ---
Function ChooseFile (sInitPath)
Set oDyn=CreateObject("DynamicWrapper")
oDyn.Register "ComDlg32.dll", "GetOpenFileNameW", "r=b", "i=l"
sOpenFileName=String(76/2, Chr(0))
sFileName=String(256, Chr(0))
dwBSTRAddr=oDyn.GetBSTRAddr(sOpenFileName)
oDyn.SetMemInBSTRAddr dwBSTRAddr,0,4,76
oDyn.SetMemInBSTRAddr dwBSTRAddr,28,4,oDyn.GetBSTRAddr(sFileName)
oDyn.SetMemInBSTRAddr dwBSTRAddr,32,4,256
oDyn.SetMemInBSTRAddr dwBSTRAddr,44,4,oDyn.GetBSTRAddr(sInitPath)
oDyn.SetMemInBSTRAddr dwBSTRAddr,52,4,4096 Or 4
oDyn.GetOpenFileNameW(dwBSTRAddr)
ChooseFile=Replace(sFileName, Chr(0), "")
End Function

sFile=ChooseFile("D:Test")
WScript.Echo "[" & sFile & "]"
--- CodeSnippet.vbs ---



La fonction choose a file fonctionne a merveille sur mon poste.

C'est quoi la différence entre la dll dynwrap.dll (sur le site
original) et la dynawrap.dll (sur votre site) ?
Avatar
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
| La fonction choose a file fonctionne a merveille sur mon poste.

Merci pour ce retour ;-)

| C'est quoi la différence entre la dll dynwrap.dll (sur le site
| original) et la dynawrap.dll (sur votre site) ?

J'ai ajouté le support des pointeurs et des structures ce qui permet
d'invoquer la quasi totalité des API Win32. Il manque toutefois le
support des callback (en projet). Ci-dessous la liste des méthodes et
propriétés disponibles :

Function FormatMessage (dwMessageId, [DllName])
Function GetBSTRAddr (String)
Function GetLastError ()
Function GetMemInBSTRAddr (dwBSTRAddr, dwOffset, nDataType)
Function GetRegistered ()
Function GetVariantAddr (Var)
Function SetMemInBSTRAddr (dwBSTRAddr, dwOffset, nDataType, Data)
Property Version

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
---DGI972---
Gilles LAURENT [MVP] a écrit :
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
La fonction choose a file fonctionne a merveille sur mon poste.



Merci pour ce retour ;-)

C'est quoi la différence entre la dll dynwrap.dll (sur le site
original) et la dynawrap.dll (sur votre site) ?



J'ai ajouté le support des pointeurs et des structures ce qui permet
d'invoquer la quasi totalité des API Win32. Il manque toutefois le
support des callback (en projet). Ci-dessous la liste des méthodes et
propriétés disponibles :

Function FormatMessage (dwMessageId, [DllName])
Function GetBSTRAddr (String)
Function GetLastError ()
Function GetMemInBSTRAddr (dwBSTRAddr, dwOffset, nDataType)
Function GetRegistered ()
Function GetVariantAddr (Var)
Function SetMemInBSTRAddr (dwBSTRAddr, dwOffset, nDataType, Data)
Property Version



Et en installant vb5ccein.exe de Microsoft on a pas le droit d'utiliser
le CommonDialog légalement et ss message d'erreur ?

(je sais je suis têtu cela dois venir de mes origines Bretonnes)
Avatar
Gilles LAURENT [MVP]
"---DGI972---" <gilles.dermigny@*NO SPAM*laposte.net> a écrit dans le
message de
news:
| Et en installant vb5ccein.exe de Microsoft on a pas le droit
| d'utiliser le CommonDialog légalement et ss message d'erreur ?

Oui, l'installation d'un produit de développement Microsoft provoque le
déverrouillage du composant comdlg32.ocx. Il faudra toutefois
l'installer sur tous les postes concernés ce qui à mon avis est inutile
sachant que plusieurs méthodes de contournement sont disponibles.
Personnellement j'installe toujours le strict minimum, soit le composant
DynaWrap avec lequel il est possible de faire beaucoup de choses. A vous
ensuite de peser le pour et le contre en fonction de vos besoins et de
votre environnement de production ...

| (je sais je suis têtu cela dois venir de mes origines Bretonnes)
Et des miennes Normandes :-)

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
1 2 3 4