[R] Action du WinSetTitle... réversible!

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
MissT
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 19 mars 2015 16:30
Status : Hors ligne

[R] Action du WinSetTitle... réversible!

#1

Message par MissT »

Bonjour à tous,

J'essaie de simplifier l'utilisation de FwTools pour mes collègues. Cet outil utilise la fenêtre dos dans laquelle il faut saisir des lignes de codes (c'est archaïque mais c'est méga-puissant!).
Vu que DOS les rebute, je veux créér une petite appli autoIt qui leur demande qq paramètres pour envoyer des lignes de commande dans DOS.

Code : Tout sélectionner

    $FToolOpened = WinExists('FWTools') 
    If $FToolOpened = 0 then                                   ;si FwTools n'est pas ouvert, on le lance
        run ("C:\Windows\system32\cmd.exe /K ""C:\Program Files (x86)\FWTools2.4.7\setfw.bat"" ")
        winwait('cmd.exe')
        sleep (10)
        WinSetTitle('cmd.exe',"",'FWTools Shell')
    endif
    winactivate("FWTools Shell")
    msgbox (0, 'test',wingettitle("FWTools",""))
    ;Focus sur FwTools
    If WinExists('FWTools Shell')=1 then
        ;on se place sur le bon dossier
        send('cd \{ENTER}')
        ...
    Endif
A l'issue du WinSetTitle: ma fenêtre DOS est bien renommée "FWTools Shell".
le msgbox me renvoie bien le titre "FWTools Shell".
la fenêtre DOS reçoit bien l'instruction 'cd \{ENTER}' mais la fenêtre a repris son ancien nom "C:\Windows\system32\cmd.exe" !!

Pourquoi le titre ne reste-t-il pas définitivement "FWTools Shell"?
Modifié en dernier par MissT le ven. 20 mars 2015 13:37, 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: [..] Action du WinSetTitle... réversible!

#2

Message par jguinch »

Essai de modifier le script setfw.bat, en ajoutant le titre en début de script :

Code : Tout sélectionner

title FWTools Shell
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
MissT
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 19 mars 2015 16:30
Status : Hors ligne

Re: [..] Action du WinSetTitle... réversible!

#3

Message par MissT »

jguinch a écrit :Essai de modifier le script setfw.bat, en ajoutant le titre en début de script :

Code : Tout sélectionner

title FWTools Shell
Heu, j'avoue que je ne comprend pas où placer "title FWTools Shell"... Dans le script du run? avant le run? Autre???
run ("title FWTools Shell C:\Windows\system32\cmd.exe /K ""C:\Program Files (x86)\FWTools2.4.7\setfw.bat"" ") ?
title "FWTools Shell" run ("C:\Windows\system32\cmd.exe /K ""C:\Program Files (x86)\FWTools2.4.7\setfw.bat"" ") ?
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Action du WinSetTitle... réversible!

#4

Message par jguinch »

Je me suis peut-être mal exprimé.
Ce que je te propose c'est de modifier le script C:\Program Files (x86)\FWTools2.4.7\setfw.bat
Tu l'édites avec notepad ou autre éditeur, et tu ajoutes title FWTools Shell vers le début.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
MissT
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 19 mars 2015 16:30
Status : Hors ligne

Re: [..] Action du WinSetTitle... réversible!

#5

Message par MissT »

Impossible de modifier ce fichier ni celui qu'il appelle. Pourtant, j'ai vérifié dans le gestionnaire des tâches, il n'est pas en cours d'utilisation...

Ce que je ne comprend pas c'est que ce script "C:\Windows\system32\cmd.exe /K ""C:\Program Files (x86)\FWTools2.4.7\setfw.bat""" est issu d'un copier/coller de la cible de l’icône de FwTool (cf. sur mon bureau).
En quoi un lancement via run est-il différent qu'un double-clic sur l'icone du bureau?
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Action du WinSetTitle... réversible!

#6

Message par jguinch »

Dans ce cas, il faut travailler avec le handle de la fenêtre et non avec le titre.
Pour récupérer le handle, tu peux te servir de ton WinWait, ou n'importe quelle fonction qui retourne un handle de fenêtre (WinGetHandle...)

Code : Tout sélectionner

run ("C:\Windows\system32\cmd.exe /K ""C:\Program Files (x86)\FWTools2.4.7\setfw.bat"" ")
$hFWTools =  winwait('cmd.exe')
ControlSend($hFWTools , "", "", "cd \{ENTER}")
De plus, je te conseille d'utiliser ControlSend (comme je l'ai fait) plutôt que Send, qui sera bancal.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
MissT
Niveau 1
Niveau 1
Messages : 4
Enregistré le : jeu. 19 mars 2015 16:30
Status : Hors ligne

Re: [..] Action du WinSetTitle... réversible!

#7

Message par MissT »

Ok, trouvé.
C'est dans dos qu'il faut envoyer une commande title:

Code : Tout sélectionner

ControlSend($NomFenetre,'','','title FWTools Shell {ENTER}')
Ceci permet de renommer la fenêtre DOS "FWTools Shell" une bonne fois pour toute.

Je n'explique toujours pas la "reversibilité" du WinSetTitle mais c'est résolu pour mon cas...
Merci pour votre aide!
Répondre