[R] Fermer programme externe (Notepad)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

[R] Fermer programme externe (Notepad)

#1

Message 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
Modifié en dernier par aulus le mer. 30 avr. 2014 16:24, modifié 1 fois.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

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

#2

Message 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)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

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

#3

Message par aulus »

C'est parfait !
Merci jguinch
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2128
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Fermer programme externe (Notepad)

#4

Message 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.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [R] Fermer programme externe (Notepad)

#5

Message 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...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2128
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [R] Fermer programme externe (Notepad)

#6

Message par TommyDDR »

Oui, je parlais à Aulus, pour lui dire de mettre directement le nom du fichier en 1er paramètre.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Fermer programme externe (Notepad)

#7

Message 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.
Répondre