[R] GUI qui ne veut pas se fermer!

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

[R] GUI qui ne veut pas se fermer!

#1

Message par cutprod »

Bonsoir a tous, j'ai un petit souci avec mon script:
Tout fonctionne bien (en fonction du nom des diapo d'un pps, le script déclanche des actions), sauf a la numero 8 ou je fais un zoom grâce a <GDIPlus.au3>, mon Gui s'affiche bien mais il me bloque tout.
Le pps n'avance plus et le Gui refuse de se "killer"!!
Pourquoi?
Je bataille mais ca vient pas!!
► Afficher le texte
Modifié en dernier par cutprod le dim. 24 oct. 2010 11:31, modifié 1 fois.
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#2

Message par bloodwolff »

J'ai regardé vaguement mais je pense que sa pourrais le réglé
GUIDelete ( [winhandle] )

Code : Tout sélectionner

#include <GDIPlus.au3>; include pour le zoom
#include <ScreenCapture.au3>
#include <WinAPI.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Powerpoint.au3>; include pour le pps


Global $objPPT = _PPT_PowerPointApp()
Global $objPPS = _PPT_PresentationOpen($objPPT, "C:\1.pps")

Global $hBMP, $hGUI1, $hGUI2, $hBitmap, $hGraphic1, $hGraphic2, $x, $y, $w , $z, $l, $h, $g, $gh

HotKeySet("{a}","zoompps")
HotKeySet("{z}","close")

While 1
    Switch $objPPS.SlideShowWindow.view.Slide.Name

        Case "slide3" ;si la diapo 3 est active alors
        graph ();appel la fonction
        Sleep(10000) ;attend x millisecondes que la diapo passe

        Case  "slide5"
        graph ()
        Sleep(10000)

        Case  "slide7"
        graph ()
        Sleep(10000)

        Case "slide8"
        zoompps()
        Sleep(6000)
        endzoomed()

EndSwitch
WEnd


func graph ()
Sleep(1000);attend x millisecondes que le webbrowser s'affiche bien
MouseClick("left", 200, 200, 1, 3) ;on bouge et click sur le graph  pour le mettre en plein ecran
MouseMove(0,1080,1) ;cache la souris
EndFunc

Func zoompps ()
Sleep(1000);attend x millisecondes que le webbrowser s'affiche bien

;capture de l'image d'origine
;$x et $y =coordonnées haut gauche du rectangle de capture de l'image d'origine
$x = 0
$Y = 163
;$w = dimension largeur rectangle de capture de l'image d'origine
$w = 715
;$Z = dimension hauteur rectangle de capture de l'image d'origine
$z = 200

; dimesion de l'image zoomer
$l=1920 ;largeur
$h=600 ;hauteur

; coordonnées x y du coin superieur gauche de la fenetre zoomer
$g=2
$gh=160

; Capture top left corner of the screen
$hBMP = _ScreenCapture_Capture("", $x, $y, $w+$x, $z+$y)

; Create a GUI for the zoomed image
$hGUI2 = GUICreate("Zoomed"  , $l, $h, $g, $gh, $WS_POPUP + $WS_BORDER);on eleve les bords de la fenetre
GUISetState()

; Initialize GDI+ library and load image
_GDIPlus_Startup()
$hBitmap = _GDIPlus_BitmapCreateFromHBITMAP($hBMP)


; Draw 2x zoomed image
$hGraphic2 = _GDIPlus_GraphicsCreateFromHWND($hGUI2)
_GDIPlus_GraphicsDrawImageRectRect($hGraphic2, $hBitmap, 0, 0, $w, $z, 0, 0, $l, $h)

; Release resources
_GDIPlus_GraphicsDispose($hGraphic1)
_GDIPlus_GraphicsDispose($hGraphic2)
_GDIPlus_ImageDispose($hBitmap)
_WinAPI_DeleteObject($hBmp)
_GDIPlus_Shutdown()

; Loop until user exits
do
until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc

Func endzoomed()
    [color=#FF0000]GUIDelete ( $hGUI2 )[/color]
EndFunc


Func close ()
_PPT_PresentationClose($objPPS) ; ferme la presentation
_PPT_PowerPointQuit ($objPPT);Exit PowerPoint
EndFunc
Compte skype : bloodwolfff
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#3

Message par cutprod »

Merci a toi je test et je te dis.
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#4

Message par cutprod »

Marche pas!!

Code : Tout sélectionner

Func endzoomed()
    GUIDelete ( $hGUI2 )
EndFunc
 
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#5

Message par bloodwolff »

Bon ok je regarde sa en détail :!:
Compte skype : bloodwolfff
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#6

Message par Jerome »

Coucou,


En regardant rapidement, ton problème vient à ce niveau la :

Code : Tout sélectionner

; Loop until user exits
do
until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc

Comment savoir que c'est la $Gui2 que tu dois fermer.

Il faut le renseigner, sinon sa fait ton problème, sa boucle dans le "Do" et sa n'en sort jamais car tu ne précise pas la Gui à fermer.


PS : je rajouterai aussi un sleep(50) dans le Do...



Jérôme
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#7

Message par bloodwolff »

Test celui la pour voir , au lieu d'attendre qu'il ferme la fenêtre on va mettre un sleep pour voir si le problème viens de la

► Afficher le texte
Modifié en dernier par bloodwolff le sam. 23 oct. 2010 22:15, modifié 3 fois.
Compte skype : bloodwolfff
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#8

Message par Jerome »

Re ....


Heuuuu, bloodwolff...;

Ta supprimer des truc qui fallait pas la.
Il manque sa boucle Do, il manque le EndFunc...



PS : Merci d'utiliser les balises Spoiler aussi....


Jérôme
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#9

Message par bloodwolff »

Le Endfunc c'étais pas volontaire mais enlever la boucle Do ,il va savoir si le problème viens de la
Compte skype : bloodwolfff
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#10

Message par cutprod »

je test et je vous tiens au courant demain!
Merci a vous deux.
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#11

Message par Jerome »

Re-Coucou,


Après test, le code donnée par bloodwolff est correct.

Sauf que tu ne peut pas choisir quand tu va dézoomer (juste un timer, et non une action user).

Je conseil donc quelque chose de ce type :
► Afficher le texte



Jérôme
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#12

Message par bloodwolff »

Guidelete dois être dans la fonction ou
$hgui2 dois être globale ou
$hgui2 dois être retourné par la fonction et envoyé dans l'autre

ps: Désolé j'avais pas remarqué le globale :?
Compte skype : bloodwolfff
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#13

Message par cutprod »

Bonjour a tous et merci a vous deux pour votre aide.
Le code fonctionne comme ca =
► Afficher le texte
J'ai aussi ajouté la ligne "$objPPT.ActivePresentation.SlideShowWindow.View.Next" (Jérôme m'avait permit de découvrir comment utiliser les commandes de Powerpoint il y a quelque temps) pour passer a la diapo suivante car sinon le script me relancer une fonction ZOOM !! (normale!)
Problème résolut! (celui ci ...)
Merci. :D
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] GUI qui ne veut pas se fermer!

#14

Message par Tlem »

N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
cutprod
Niveau 6
Niveau 6
Messages : 273
Enregistré le : jeu. 30 sept. 2010 17:25
Localisation : Sud Ouest
Status : Hors ligne

Re: [R] GUI qui ne veut pas se fermer!

#15

Message par cutprod »

OUPS!!
Rectifier! :|
Cut, srcipteur du dimanche...désolé !-)
Répondre