Page 1 sur 1

[R] Fermer programme externe (Notepad)

Posté : mer. 30 avr. 2014 15:09
par aulus
Bonjour,

Je lance Notepad par :

Code : Tout sélectionner

ShellExecute("notepad.exe", "fichier.txt", @ScriptDir, "open")
Le souci est que chaque fois que j'envoie ma fonction Ouvrir(), Notepad s'ouvre une fois de plus et je me retrouve avec une pile de fenêtres.
Je souhaiterais fermer la fenêtre précédente de Notepad au lancement de la fonction Ouvrir() avant que la suivante ne s'ouvre . Est-ce possible ?

Code : Tout sélectionner

Func Ouvrir()
[b]Ici fonction pour fermer la fenêtre précédente de Notepad, puis :[/b]
ShellExecute("notepad.exe", "fichier.txt", @ScriptDir, "open")
EndFunc
 
Merci

Re: [..] Fermer programme externe (Notepad)

Posté : mer. 30 avr. 2014 15:49
par jguinch
ShellExecute te renvoi le PID, tu peux le killer :

Code : Tout sélectionner

$iPid = ShellExecute("notepad.exe", "fichier.txt", @ScriptDir, "open")
Sleep(1000)
ProcessClose($iPid)

Re: [..] Fermer programme externe (Notepad)

Posté : mer. 30 avr. 2014 16:24
par aulus
C'est parfait !
Merci jguinch

Re: [R] Fermer programme externe (Notepad)

Posté : mer. 30 avr. 2014 21:07
par TommyDDR
Attention, vous utilisez ShellExecute comme un Run, ShellExecute vous permet quelque chose de beaucoup plus simple (si notepad est associé par défaut à vos fichiers texte)

Code : Tout sélectionner

ShellExecute("fichier.txt")
Avec notepad++ par exemple, les fichiers s'ajouteront en onglets ou activera le bon onglet si le ficheir est déjà ouvert.

Re: [R] Fermer programme externe (Notepad)

Posté : mer. 30 avr. 2014 22:40
par jguinch
TommyDDR a écrit :vous utilisez ShellExecute comme un Run
Oui, en général j'utilise plutôt Run pour récupérer le PID, mais comme Aulus a utilisé ShellExecute...

Re: [R] Fermer programme externe (Notepad)

Posté : jeu. 01 mai 2014 00:37
par TommyDDR
Oui, je parlais à Aulus, pour lui dire de mettre directement le nom du fichier en 1er paramètre.

Re: [R] Fermer programme externe (Notepad)

Posté : jeu. 01 mai 2014 07:51
par aulus
Merci pour ces précisions sur la ou l'une des différences entre les deux fonctions. J'ai choisi ShellExecute parce qu'il m'est arrivé d'utiliser Run sans succès alors que ShellExecute ne m'a jamais fait de caprices.