OVH Cloud OVH Cloud

shell

9 réponses
Avatar
Jean Elens
Bonjour a tous,

J'utilise la commande "Shell" pour executer un programme externe.
Petit probleme, la commande "shell" lance cette commande mais n'attend pas
la fin d'execution de cette commande.
Comment en VB, puis-je lancer une commande externe et attendre que cette
applic/commande externe soit finie ?

Jean

9 réponses

Avatar
Jacques93
Bonsoir,
Jean Elens a écrit :
Bonjour a tous,

J'utilise la commande "Shell" pour executer un programme externe.
Petit probleme, la commande "shell" lance cette commande mais n'attend pas
la fin d'execution de cette commande.
Comment en VB, puis-je lancer une commande externe et attendre que cette
applic/commande externe soit finie ?

Jean





Essaie :

Dim objShell As Object

Set objShell = CreateObject("WScript.Shell")
objShell.Run "notepad", 1, True
MsgBox "Fini"
Set objShell = Nothing

Syntaxe de Run :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsmthrun.asp

--
Cordialement,

Jacques.
Avatar
Jean Elens
OK
PS j'ai du ajouter la reference à "Microsoft script control 1.0"
(msscript.ocx) qui n'est pas installé sur la machine sur laquelle je vais
faire l'installation.

merci.
Jean
----------------
"Jacques93" wrote in message
news:%23%
Bonsoir,
Jean Elens a écrit :
> Bonjour a tous,
>
> J'utilise la commande "Shell" pour executer un programme externe.
> Petit probleme, la commande "shell" lance cette commande mais n'attend


pas
> la fin d'execution de cette commande.
> Comment en VB, puis-je lancer une commande externe et attendre que cette
> applic/commande externe soit finie ?
>
> Jean
>
>

Essaie :

Dim objShell As Object

Set objShell = CreateObject("WScript.Shell")
objShell.Run "notepad", 1, True
MsgBox "Fini"
Set objShell = Nothing

Syntaxe de Run :




http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsmthrun.asp

--
Cordialement,

Jacques.


Avatar
Jean Elens
Quelqu'un connait-il des problemes ave cet OCX ?
fonctionne-t-il toujours impecablement ?
Merci de vos avis.

"Jacques93" wrote in message
news:%23%
Bonsoir,
Jean Elens a écrit :
> Bonjour a tous,
>
> J'utilise la commande "Shell" pour executer un programme externe.
> Petit probleme, la commande "shell" lance cette commande mais n'attend


pas
> la fin d'execution de cette commande.
> Comment en VB, puis-je lancer une commande externe et attendre que cette
> applic/commande externe soit finie ?
>
> Jean
>
>

Essaie :

Dim objShell As Object

Set objShell = CreateObject("WScript.Shell")
objShell.Run "notepad", 1, True
MsgBox "Fini"
Set objShell = Nothing

Syntaxe de Run :




http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsmthrun.asp

--
Cordialement,

Jacques.


Avatar
Jacques93
Bonsoir,
Jean Elens a écrit :
Quelqu'un connait-il des problemes ave cet OCX ?
fonctionne-t-il toujours impecablement ?
Merci de vos avis.




Ce contrôle permet de s'utiliser le système de Script Windows
VBScript (.VBS) et JScript (.JS). Plus de détails ici :


http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp

--
Cordialement,

Jacques.
Avatar
ng
Salut,

Essaie :

Dim objShell As Object

Set objShell = CreateObject("WScript.Shell")
objShell.Run "notepad", 1, True
MsgBox "Fini"
Set objShell = Nothing




Il s'agit là dans un OCX créé pour le scripting, je pense qu'il n'est pas
très élégant de l'utiliser dans VB pour plusieurs raisons :

* problèmes de compatibilités
* problèmes d'enregistrement de l'ocx sur la machine (on sait jamais)
* certain antivirus désactivent ces ocx pour éviter les scripts malveillant.

il faut plutot utiliser les APIs.

Regarde sur google groups, il y a pleins d'exemples (dont certains que j'ai
deja postés). Cherche "ShelleAndWait" et tu trouveras.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Avatar
Zoury
Salut Nicolas !

"ShelleAndWait" et tu trouveras.



Tu veux dire "ShellAndWait" ? ;O)

Voici un exemple si tu ne trouve pas ..:
http://vbnet.mvps.org/code/faq/waitforsingleobject2.htm

--
Cordialement
Yanick
MVP pour Visual Basic
Avatar
Jean Elens
OK merci.

"ng" wrote in message
news:%
Salut,

> Essaie :
>
> Dim objShell As Object
>
> Set objShell = CreateObject("WScript.Shell")
> objShell.Run "notepad", 1, True
> MsgBox "Fini"
> Set objShell = Nothing


Il s'agit là dans un OCX créé pour le scripting, je pense qu'il n'est pas
très élégant de l'utiliser dans VB pour plusieurs raisons :

* problèmes de compatibilités
* problèmes d'enregistrement de l'ocx sur la machine (on sait jamais)
* certain antivirus désactivent ces ocx pour éviter les scripts


malveillant.

il faut plutot utiliser les APIs.

Regarde sur google groups, il y a pleins d'exemples (dont certains que


j'ai
deja postés). Cherche "ShelleAndWait" et tu trouveras.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/


Avatar
ng
"Zoury" <yanick_lefebvre at hotmail dot com> wrote:

Salut Nicolas !

"ShelleAndWait" et tu trouveras.



Tu veux dire "ShellAndWait" ? ;O)


oui :)

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Avatar
Daniel AUBRY
Salut,

ayant eu le même problème il y a quelque temps on m'a
conseillé et donné ce code que j'utilise avec bonheur.
Par contre je ne sais plus qui !!
S'il se reconnait : encore merci.

Dany


Public Function Execute(Fichier As String, AttendreLaFin As Boolean,
Optional StyleDeLaFenêtre As VbAppWinStyle = vbNormalFocus) As Boolean

Dim Demarre As Long
Dim ProcessHandle As Long
Dim Retour As Long

On Error GoTo Erreur

If AttendreLaFin = False Then
Demarre = Shell(Fichier, StyleDeLaFenêtre)
Else
Demarre = Shell(Fichier, StyleDeLaFenêtre)
ProcessHandle = OpenProcess(SYNCHRONIZE, False, Demarre)
Retour = WaitForSingleObject(ProcessHandle, 1)
Do While Retour = WAIT_TIMEOUT
Retour = WaitForSingleObject(ProcessHandle, 1)
DoEvents
Loop
Retour = CloseHandle(ProcessHandle)
End If

Execute = True

Exit Function

Erreur:
Execute = False

End Function


"Jean Elens" a écrit dans le message de news:
PB5ie.92865$
Bonjour a tous,

J'utilise la commande "Shell" pour executer un programme externe.
Petit probleme, la commande "shell" lance cette commande mais n'attend pas
la fin d'execution de cette commande.
Comment en VB, puis-je lancer une commande externe et attendre que cette
applic/commande externe soit finie ?

Jean