Page 1 sur 1

[R] Différences entre Run() et ShellExecute()

Posté : jeu. 06 juin 2019 14:18
par jpascal
Bonjour,

Je m'interroge sur l'utilité de la fonction ShellExecute() dans le cas d'un lancement de programme exécutable.
ShellExecute() prend en paramètres les options de l'exécutable mais on peut aussi les passer dans le premier paramètre de Run().

C'est peut être plus simple si l'on désire lancer un script Powershell avec des paramètres.
Par exemple ShellExecute('powershell.exe', ' script .ps1 -command1 "toto" -command2 "titi" ')
Mais on perd l'opt flag pour rediriger les flux consoles du coup je n'utilise que Run().

Merci d'avance pour vos commentaires, conseils et autres explications.

Re: [..] Différences entre Run() et ShellExecute()

Posté : jeu. 06 juin 2019 23:29
par Tlem
Bonsoir jpascal.
La différence principale entre Run et ShellExecute c'est qu'avec ShellExecute, vous pouvez aussi "lancer" un fichier .doc, un PDF, et de manière générale, tous fichier associé avec une application (en plus de ce que Run peux lancer). Autrement dit, si vous lancez un ShellExecute("MonFichier.doc"), Word ou tout traitement de texte associé sera lancé et le document ouvert dans celui-ci. De même, ShellExecute("Image.bmp") ouvrira Paint ou autre en affichant l'image, ShellExecute("MonFichier.pdf") ouvrira Edge ou Acrobat Reader, etc ...

Plus globalement, on utilisera Run pour lancer des programmes console (EXE, BAT, COM, ou PIF) dont on aurait éventuellement besoin de récupérer des retours (ce que ShellExecute ne peux pas faire).

Re: [..] Différences entre Run() et ShellExecute()

Posté : ven. 07 juin 2019 12:22
par jpascal
Bonjour Thierry,

Merci pour votre réponse complète.
C'est exactement comme cela que j'utilise les fonctions ShellExecute() et Run(). ;-)