Un problème bizarre

Le
olegna
Bonjour à tous.
J'ai voulu automatiser les actions successives de mon antispam outclock et
de mon courrieleur OE6, dans un petit programme modeste qui me permet
néanmoins de ne pas lancer OE6 sans avoir éliminé le spam.
Voila le module :
Début :
Option Explicit
Dim wsh As WshShell
_____________________________________

Sub main()
Set wsh = New IWshRuntimeLibrary.WshShell
wsh.Run "C:ProgrammesOutClockStunnelstunnel-4.08.exe", WshNormalFocus,
False
wsh.Run "C:ProgrammesOutClockOutClock.exe", WshNormalFocus, True
'wsh.Run "C:Program FilesOE-QuoteFixOELaunch.exe", WshNormalFocus, False
Set wsh = Nothing
Shell "C:Program FilesOE-QuoteFixOELaunch.exe", vbNormalFocus
End Sub
Fin:
A ma grande surprise, la ligne que j'ai quoté d'une apostrophe me produit
une erreur d'automation ( http://cjoint.com/?jprCEtC0Ta ), et j'ai du la
remplacer par un bon vieux Shell qui lui ne produit aucune erreur. Est-ce la
présence d'un blanc dans le chemin de OELauncher ? De plus je n'ai testé
qu'en mode création.
Quelqu'un a-t-il l'explication de ce problème mineur ? J'ai horreur de ne
pas comprendre!!
Merci.

--
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacques93
Le #17236821
Bonjour olegna,
olegna a écrit :
Bonjour à tous.
J'ai voulu automatiser les actions successives de mon antispam outclock et
de mon courrieleur OE6, dans un petit programme modeste qui me permet
néanmoins de ne pas lancer OE6 sans avoir éliminé le spam.
Voila le module :
Début :
Option Explicit
Dim wsh As WshShell
_____________________________________

Sub main()
Set wsh = New IWshRuntimeLibrary.WshShell
wsh.Run "C:ProgrammesOutClockStunnelstunnel-4.08.exe", WshNormalFocus,
False
wsh.Run "C:ProgrammesOutClockOutClock.exe", WshNormalFocus, True
'wsh.Run "C:Program FilesOE-QuoteFixOELaunch.exe", WshNormalFocus, False
Set wsh = Nothing
Shell "C:Program FilesOE-QuoteFixOELaunch.exe", vbNormalFocus
End Sub
Fin:
A ma grande surprise, la ligne que j'ai quoté d'une apostrophe me produit
une erreur d'automation ( http://cjoint.com/?jprCEtC0Ta ), et j'ai du la
remplacer par un bon vieux Shell qui lui ne produit aucune erreur. Est-ce la
présence d'un blanc dans le chemin de OELauncher ? De plus je n'ai testé
qu'en mode création.
Quelqu'un a-t-il l'explication de ce problème mineur ? J'ai horreur de ne
pas comprendre!!
Merci.



L'espace est souvent considéré comme le caractère séparateur entre la
commande et ses paramètres éventuels, il est donc prudent de doubler les
guillemets :

wsh.Run Chr$(34) & "C:Program FilesOE-QuoteFixOELaunch.exe" &
Chr$(34), WshNormalFocus, False

De plus comme tu utilises Programmes, et Program Files, j'ai un petit
doute : Programmes est il ici le nom localisé de Program Files sous Vista ?

Il peut être intéressant d'utiliser la variable d'environnement
ProgramFiles, que la méthode Run sait interpréter :

wsh.Run Chr$(34) & "%ProgramFiles%OE-QuoteFixOELaunch.exe" & Chr$(34),
WshNormalFocus, False

à la différence de Shell, où il faut forcer cette interprétation :

Shell Chr$(34) & Environ("ProgramFiles") & "OE-QuoteFixOELaunch.exe" &
Chr$(34), vbNormalFocus


--

Cordialement,

Jacques.
olegna
Le #17239201
Dans le message : %,
Jacques93 a écrit :
Bonjour olegna,
olegna a écrit :
Bonjour à tous.
J'ai voulu automatiser les actions successives de mon antispam
outclock et de mon courrieleur OE6, dans un petit programme modeste
qui me permet néanmoins de ne pas lancer OE6 sans avoir éliminé le
spam. Voila le module :
Début :
Option Explicit
Dim wsh As WshShell
_____________________________________

Sub main()
Set wsh = New IWshRuntimeLibrary.WshShell
wsh.Run "C:ProgrammesOutClockStunnelstunnel-4.08.exe",
WshNormalFocus, False
wsh.Run "C:ProgrammesOutClockOutClock.exe", WshNormalFocus, True
'wsh.Run "C:Program FilesOE-QuoteFixOELaunch.exe",
WshNormalFocus, False
Set wsh = Nothing
Shell "C:Program FilesOE-QuoteFixOELaunch.exe", vbNormalFocus
End Sub
Fin:
A ma grande surprise, la ligne que j'ai quoté d'une apostrophe me
produit une erreur d'automation ( http://cjoint.com/?jprCEtC0Ta ),
et j'ai du la remplacer par un bon vieux Shell qui lui ne produit
aucune erreur. Est-ce la présence d'un blanc dans le chemin de
OELauncher ? De plus je n'ai testé qu'en mode création.
Quelqu'un a-t-il l'explication de ce problème mineur ? J'ai horreur
de ne pas comprendre!!
Merci.



L'espace est souvent considéré comme le caractère séparateur entre la
commande et ses paramètres éventuels, il est donc prudent de doubler
les guillemets :

wsh.Run Chr$(34) & "C:Program FilesOE-QuoteFixOELaunch.exe" &
Chr$(34), WshNormalFocus, False

De plus comme tu utilises Programmes, et Program Files, j'ai un petit
doute : Programmes est il ici le nom localisé de Program Files sous
Vista ?
Il peut être intéressant d'utiliser la variable d'environnement
ProgramFiles, que la méthode Run sait interpréter :

wsh.Run Chr$(34) & "%ProgramFiles%OE-QuoteFixOELaunch.exe" &
Chr$(34), WshNormalFocus, False

à la différence de Shell, où il faut forcer cette interprétation :

Shell Chr$(34) & Environ("ProgramFiles") &
"OE-QuoteFixOELaunch.exe" & Chr$(34), vbNormalFocus



Merci beaucoup Jacques.
En fait l'espace perturbe la méthode Run ; voila les formulations qui
fonctionnent :
soit :
wsh.Run Chr$(34) & Environ("ProgramFiles") & "OE-QuoteFixOELaunch.exe" &
Chr$(34), WshNormalFocus, False
soit :
wsh.Run Chr$(34) & "%ProgramFiles%OE-QuoteFixOELaunch.exe" & Chr$(34),
WshNormalFocus, False

Je connaissais, pourtant, l'astuce qui consiste à doubler les guillemets,
mais je n'ai pas été capable de m'en rappeler.
Il n'y avait pas d'autre erreur :
Outclock est bien dans C:Programmes, dossier créé par moi et OELaunch est
bien dans c:Program Files.
Merci encore. Bonne journée à tous.

--
Publicité
Poster une réponse
Anonyme