AutoIt Français

Nouveau forum : http://www.autoitscript.fr/
 
AccueilFAQRechercherS'enregistrerMembresGroupesConnexionhttp://www.autoitscript.fr

Partagez | 
 

 Fermer une fenêtre elle-même incluse dans une fenêtre

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
francois
Débutant
Débutant


Nombre de messages : 6
Date d'inscription : 10/05/2007

MessageSujet: Fermer une fenêtre elle-même incluse dans une fenêtre   2007-05-10, 20:19

Bonjour à tous.
Je vous préviens, je suis vraiment débutant avec AutoIt. Voici mon problème.

Avec ce script :[code]If $cmdline[0] = 1 then
$title = $CmdLine[1]
WinClose ( $title )
EndIf[/code]J'obtiens un fichier que j'appellerai FermeToi.exe. Lorque je tape sur l'invite de commandes de Windows XP ceci :
[code]FermeToi.exe "Adobe Reader"[/code]La fenêtre intitulée Adobe Reader (c'est un exemple) se ferme aussitôt. Parfait. Mais vous savez bien que par exemple pour Adobe Reader, la fenêtre contient elle-même des sous fenêtres correspondant à des documents pdf comme Doc1.pdf Doc2.pdf.

J'aimerais savoir comment faire pour avoir un fichier FermeToi.exe qui avec la ligne de commande [code]FermeToi.exe "Doc1.pdf"[/code] puisse fermer Doc1.pdf sans fermer Doc2.pdf et encore moins la fenêtre Adobe Reader.
En fait, j'aimerais encore mieux que cela fonctionnne avec ceci : FermeToi.exe "C:\Document and Settings\Francois\Doc1.pdf"

Si quelqu'un peut m'aider, car là je bloque.

Merci d'avance.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: Fermer une fenêtre elle-même incluse dans une fenêtre   2007-05-10, 20:58

Dans le cas des sous fenêtres sous acro32, on peut envoyer un contrôle w pour fermer la fenêtre en cours.
du coups, pour adapter ceci à ton script, on test si ".pdf" est dans le nom de ton argument
si c'est le cas on active la fenêtre et on envoie ^w
sinon en ferme la fenêtre comme tu le faisait :

AutoItSetOption("WinTitleMatchMode",2)


If $cmdline[0] = 1 then
$title = $CmdLine[1]
If StringInStr($title,".pdf")<>0 Then
WinActivate($title,"")
WinWaitActive($title)
send("^w")
Else
WinClose ( $title )
EndIf
EndIf
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
francois
Débutant
Débutant


Nombre de messages : 6
Date d'inscription : 10/05/2007

MessageSujet: Re: Fermer une fenêtre elle-même incluse dans une fenêtre   2007-05-11, 00:27

Merci Sylvanie pour ta réponse. Mais, hélas, il y a un petit problème. C'est que le raccourci Ctrl+W ferme une fenêtre certes, mais cela ferme la fenêtre courante dans la grosse fenêtre Adobe Reader. Et donc le script que tu me proposes ferme donc le doc pdf courant, [b]quelque soit son nom[/b]. Donc si dans la fenêtre Adobe Reader, Doc1.pdf et Doc2.pdf sont ouverts et que Doc2.pdf est le doc courant (c'est-à-dire celui qu'on voit), je fais :
[code]FermeToi.exe Doc1.pdf[/code]
Alors c'est Doc2.pdf qui se fermera et non Doc1.pdf (je viens de le tester).

Désolé . Si toi ou quelqu'un d'autre a une idée....

Au fait, soit dit en passant quelqu'un peut il m'expliquer la syntaxe
[code]WinActivate("title" [, "text"] )[/code]
Je comprend "title" mais je ne comprends par ça : [, "text"]. C'est quoi ce truc ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Fermer une fenêtre elle-même incluse dans une fenêtre   2007-05-11, 01:02

le titre de la fenêtre
le texte qui pourrait s'y retrouver

ça permet de cibler une fenêtre(=windows) plus facilement.

désolé de ne pouvoir t'aider sur ce problème.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
francois
Débutant
Débutant


Nombre de messages : 6
Date d'inscription : 10/05/2007

MessageSujet: Re: Fermer une fenêtre elle-même incluse dans une fenêtre   2007-05-11, 03:08

Ce n'est pas grave, c'est gentil d'avoir voulu m'aider. Si quelqu'un a une idée à proposer, je très intéressé.

Merci et à bientôt j'espère.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: Fermer une fenêtre elle-même incluse dans une fenêtre   2007-05-11, 20:35

[quote:0f81="francois"]Merci Sylvanie pour ta réponse. Mais, hélas, il y a un petit problème. C'est que le raccourci Ctrl+W ferme une fenêtre certes, mais cela ferme la fenêtre courante dans la grosse fenêtre Adobe Reader. Et donc le script que tu me proposes ferme donc le doc pdf courant, [b]quelque soit son nom[/b]. Donc si dans la fenêtre Adobe Reader, Doc1.pdf et Doc2.pdf sont ouverts et que Doc2.pdf est le doc courant (c'est-à-dire celui qu'on voit), je fais :
[code]FermeToi.exe Doc1.pdf[/code]
Alors c'est Doc2.pdf qui se fermera et non Doc1.pdf (je viens de le tester).

[/quote]

C'est étonnant, car tel qu'est fait le script, si c'est Doc2 qui est actif, alors le script ne pourra pas activer la fenêtre puisque le titre est construit sur doc2 et non doc1. Sauf si le nom de doc1 est inclus dans celui de doc2, et là pas de chance ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Fermer une fenêtre elle-même incluse dans une fenêtre   2007-05-14, 00:05

mon avis de novice observateur serait de killer la fenetre enfant. mdchild setparent ... je vais voir si je trouve pas çà , vu que ej ne dispose pas de soft semblable mais juste un windows, notepad & scite rien d'autre.
je reediterai .
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
francois
Débutant
Débutant


Nombre de messages : 6
Date d'inscription : 10/05/2007

MessageSujet: Re: Fermer une fenêtre elle-même incluse dans une fenêtre   2007-05-14, 19:32

Merci beaucoup Ani. Je suis très intéressé.
A bientôt.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: Fermer une fenêtre elle-même incluse dans une fenêtre   2007-05-14, 21:25

c'est juste pour acrobat ?

avec auto window info (au3info.exe) tu as quelques donnée importante là je test sur une veuille machine qui disposait de acrobat 5.0

faut peut etre cibler là
$close= wingethandle ("acrobat reader - ["&$titre &"]")
winclose ($close)

Title: Acrobat Reader - [GuideInstallation.pdf]
Class: Afx:400000:8:10011:0:3c078f
ClassNameNN: AVL_AVView3
Text: AVPageView

je vais retester


voici un exemple a modifier vu que je suis un top novice

[b][i][color=#000090]AutoItSetOption[/color][/i][color=#ff0000]([/color][color=#9999cc]"WinTitleMatchMode"[/color][color=#ff0000],[/color][/b] [b][i][color=#ac00a9]4[/color][/i][color=#ff0000])
[/color][/b][i][color=#009933];titre du programme
[/color][/i][b][color=#aa0000]$Titre[/color][/b] [b][color=#ff0000]=[/color][/b] [b][color=#9999cc]"Acrobat Reader"
[/color][/b][i][color=#009933];Nom du processus
[/color][/i][b][color=#aa0000]$Acrob[/color][/b] [b][color=#ff0000]=[/color][/b] [b][color=#9999cc]"acroRd32"
[/color][/b][i][color=#009933];on lance acrobat reader
[/color][color=#000090][b]ShellExecute[/b][/color][/i][b][color=#ff0000]([/color][color=#aa0000]$Acrob[/color][color=#ff0000])
[/color][/b][b][color=#ff0000]
[/color][color=#0000ff]If[/color][/b] [b][color=#aa0000]$cmdline[/color][color=#ff0000][[/color][i][color=#ac00a9]0[/color][/i][color=#ff0000]][/color][/b] [b][color=#ff0000]=[/color][/b] [b][i][color=#ac00a9]1[/color][/i][/b] [b][color=#0000ff]then
[/color][color=#aa0000]$title[/color][/b] [b][color=#ff0000]=[/color][/b] [b][color=#aa0000]$CmdLine[/color][color=#ff0000][[/color][i][color=#ac00a9]1[/color][/i][/b][b][color=#ff0000]]
[/color][color=#0000ff]Local[/color][/b] [b][color=#aa0000]$handle[/color][/b] [b][color=#ff0000]=[/color][/b] [b][i][color=#000090]WinGetHandle[/color][/i][color=#ff0000]([/color][color=#aa0000]$Titre[/color][/b] [b][color=#ff0000]&[/color][color=#9999cc]" - ["[/color][color=#ff0000]&[/color][/b] [b][color=#aa0000]$title[/color][/b] [b][color=#ff0000]&[/color][color=#9999cc]"]"[/color][color=#ff0000],[/color][/b] [b][color=#9999cc]""[/color][color=#ff0000])
[/color][/b][i][color=#009933];raccourci clavier permettant de closer une fenetre
[/color][color=#000090][b]send[/b][/color][/i][b][color=#ff0000]([/color][color=#9999cc]"^w"[/color][/b][b][color=#ff0000])
[/color][color=#0000ff]EndIf[/color][/b]

cmd sous dos
le nom de l'exe suivit du titre du fichier

[i][u]Exemple[/u][/i]
closepdf.exe guide.pdf (le fichier en premier plan)

Edit:: après un deuxieme test si on apelle un fichier a closer qui n'est pas au premier plan il close la fenetre qui etait au premier plan ,, je m'exprime mal

book.pdf,premierbook.pdf,2book.pdf,36book.pdf << fichier ouvert
le premier plan c'est book.pdf
si je close 2book.pdf c'est book.pdf qui close

donc faudrait activer la page en question avant de la closer je réditerai au propre.

reedit::faudrait faire une boucle sur le titre avec la fonction suivant (ctrl-f6) j'ai pas réussi pour le moment
en meme temp dans les menu y a window(et les fichier sont dans la fin du menu peut etre qui faut clicker là suivit d'un ctrl-w)

bon la dessus je retourne pour tester .


Dernière édition par le 2007-05-15, 21:09, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
francois
Débutant
Débutant


Nombre de messages : 6
Date d'inscription : 10/05/2007

MessageSujet: Re: Fermer une fenêtre elle-même incluse dans une fenêtre   2007-05-15, 02:32

[quote:7f0c="ani"]c'est juste pour acrobat ?[/quote]Personnellement, oui.

[quote:7f0c="ani"] si on apelle un fichier a closer qui n'est pas au premier plan il close la fenetre qui etait au premier plan[/quote]Voilà le point central du problème, en effet.

[quote:7f0c="ani"]donc faudrait activer la page en question avant de la closer[/quote]Et oui. Mais hélas je ne sais pas comment faire. Si quelqu'un a une idée ...

A bientôt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Fermer une fenêtre elle-même incluse dans une fenêtre   Aujourd'hui à 16:27

Revenir en haut Aller en bas
 
Fermer une fenêtre elle-même incluse dans une fenêtre
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment afficher la vitesse dans la fenêtre "Profil d'altitude".
» Comment mettre une fenêtre avec un ascenseur dans un sujet ?
» Comment faire pour afficher une fenêtre pop-up ?
» Une page internet dans une fenêtre/un cadre
» Ajouter un bouton dans la fenêtre d'édition

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
AutoIt Français :: AutoIt v3 :: Entraide-
Sauter vers: