[R] Interaction avec pps

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] Interaction avec pps

#1

Message par cutprod »

Bonjour,à tous.
Voila j'ai essayer de me débrouiller seul mais faut croire que " chaqu' un son métier " c'est un peu trop chaud pour moi!
Je voudrais faire tourner un pps sur un écran tv de demo toute la journée, dans ce pps je dois faire agir la souris dans certaine diapos. Je n'aimerais pas devoir jouer avec des tempos, car à la fin de la journée de légers écarts de timing se transformeraient en bug complet...
J'aie recherché donc le moyen pour Autoit de savoir quelle diapo (slide n°) est active a l'écran, pour déclancher des actions.
J'ai poster ma question sur "aide générale" un gentil copain ma orienter sur cet UDF . Qui semble pouvoir convenir.
Mais je bloque , j'ai du mal...
Donc je demande si une bonne âme charitable pourrait me faire un petit script qui tourne en même temps qu'un pps (en boucle) et qui, à chaque fois que la diapo numéro 3 est active a l'écran, fait apparaitre une MsgBox avec le texte "c'est la diapo 3!!" et moi je pourrais me le retravailler pour l'adapter à mon projet.
Voila je suis a votre dispo et en standby (mais je continu a faire des tests de mon coté!).Merci
Modifié en dernier par cutprod le sam. 02 oct. 2010 20:37, modifié 1 fois.
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Interaction avec pps

#2

Message par SrBelial »

alors j'ai pas powerpoint sous la main donc je peux pas tester, mais est ce qu'il y a pas un moyen dans un pps pour faire en sorte qu'à chaque diapo la fenêtre powerpoint change de titre (et par exemple prenne le titre de la diapo pour titre) ?

je sais bien que de toute façon en fullscreen on s'en f**t du titre de la fenêtre, mais c'est que de cette façon tu pourrais fonctionner en faisant des tests pour savoir si une fenêtre avec le nom prévu est active ou non ...

en espérant que ce soit une bonne piste et non un cul-de-sac ...
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
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: [..] Interaction avec pps

#3

Message par cutprod »

Merci pour ton aide!
Quand tu dis " a chaque diapos la fenêtre powerpoint change de titre" tu veux dire quelle fenêtre ?
Parce que le soft "Powerpoint" est fermé pendant l'exécution du pps.
Je ne fais que lancer un pps qui se trouve dans un dossier quelconque.
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: [..] Interaction avec pps

#4

Message par cutprod »

Ok j'ai essayer avec "AutoIt Window Info" mais aucun changement dans la catégorie window le titre reste le même quelque soit la diapo.
Cut, srcipteur du dimanche...désolé !-)
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Interaction avec pps

#5

Message par SrBelial »

ok bah mauvaise piste alors ^__^

éventuellement ce que je ferais moi c'est de caler dans un coin de l'écran un petit carré d'une couleur donnée, et différente à chaque slide,
et comme ça en connaissant les coordonnées de ce petit carré, tu teste si la couleur d'un pixel de ce carré correspond à une des valeurs que tu as réglé dans ton script ...
exemple : slide 1: petit carré vert en haut à droite, slide 2 : petit carré rouge en haut à droite, slide 3 : petit carré bleu en haut à droite ...

et tant que ton petit carré est pas de la bonne couleur tu sais que t'es pas sur le slide que tu veux ....

c'est pas très propre comme solution, sinon il ne reste que la possibilité de ne pas timer ton powerpoint .....
c'est à dire qu'il ne doit pas se dérouler automatiquement, et c'est le script qui swappe d'un slide à l'autre, avec un MouseClick() ou un Send() du clavier ... ça te permet de controler entièrement depuis ton script tout ce qui se passe sur ton slide, et du coup tu sais de façon très précise si tu es à tel ou tel slide, mais également depuis combien de temps tu y es ....
perso c'est cette solution que je choisirais !
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
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: [..] Interaction avec pps

#6

Message par cutprod »

Ha ouai!! pas mal la solution de contrôler le timing des diapos depuis le script!!
Ça me donne la main sur tous le déroulement du pps.
Je te remercie beaucoup je vais essayer de mettre ca en œuvre.
Je te tiens au courant.

Au fait avec la fonction slidecount de l'UDF en question, on ne peut rien faire?

Code : Tout sélectionner

Func _PPT_SlideCount($obj)
    If IsObj($obj) <> 1 Then 
        SetError(1)
        Return 0
    Else
        Return $obj.Slides.Count
    Endif
EndFunc
 
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: [..] Interaction avec pps

#7

Message par Jerome »

Coucou,


j'allais justement tester un peu l'UDF pour voir ce que sa pouvait t'apporter.
Je suis entrain d'installer PowerPoint 2007 la.


Donc je vais test tout sa, je te tient au courant.



Jérôme
Avatar du membre
Jerome
Niveau 9
Niveau 9
Messages : 661
Enregistré le : mar. 07 avr. 2009 08:35
Localisation : Picardie
Status : Hors ligne

Re: [..] Interaction avec pps

#8

Message par Jerome »

Re-Coucou,

Essaye ceci :

Code : Tout sélectionner

#include <Powerpoint.au3>

$objPPT = _PPT_PowerPointApp()
$objPPT = _PPT_PresentationOpen($objPPT, "C:\Users\Jerome\Desktop\lol.ppt")
WinWaitActive("Microsoft PowerPoint - ")
_PPT_SlideShowRun($objPPT) ; lance le diapo
$objPPT.SlideShowWindow.View.GoToSlide(3) ; va au diapo numero 3 (Enjoy pour passer tes diapo :) )

Quelques autres lignes utiles ici.



Jérôme
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: [..] Interaction avec pps

#9

Message par cutprod »

Salut a toi , j'essaye de suite!!
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: [..] Interaction avec pps

#10

Message par cutprod »

Marche pas chez moi!! le soft powerpoint se lance mais bloque ! le pps ne se lance pas!!
tu as tester avec powerpoint 2007 je suis avec 2003, tu crois que ca a une incidence ? je peux passer au 2007 je l'ai par quelque par là...
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: [..] Interaction avec pps

#11

Message par Jerome »

Coucou,


Oui si tu peux test avec 2007., même si mon pps était au format 2003.
Fait des test, pour moi sa fonctionne.
Sa lance le pps et sa m'amene sur le slide que je choisit (en l'occurrence ici "3")

Edit : en faite c'est moi qui suis trop fort, utilise le fichier au format ppt ...
Je l'ai fait avec le ppt, sa lance d'abord microsoft power point puis sa met en route le diapo ....
lol ^^"


Dans le cas d'un pps, il suffit de mettre :

Code : Tout sélectionner

#include <Powerpoint.au3>

$objPPT = _PPT_PowerPointApp()
$objPPT = _PPT_PresentationOpen($objPPT, "C:\Users\Jerome\Desktop\lol.pps")
sleep(2000)
$objPPT.SlideShowWindow.View.GoToSlide(3)



Jérôme
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: [..] Interaction avec pps

#12

Message par cutprod »

Pardon ca fonction très bien, j'ai changer le chemin, je l'ai directement dans C:\ et ca tourne!!
Je devais me tromper dans la syntaxe du chemin!! trop nul!!
J'approfondis le truc et je te tiens au jus!!
Merci beaucoup!! :D :D
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: [..] Interaction avec pps

#13

Message par cutprod »

Bien voila je suis parvenu (avec l'aide de Jérôme sur le forum, et mon beau frère Julien) a faire un petit script.
Ce n'est que le début de mon appli finale mais cela resume assez bien sa vocation.
Je vous le met pour avoir vos critiques et si ca peut resservir a quelqu'un...
Encore merci au forum!!

Code : Tout sélectionner

#include <Powerpoint.au3>


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


While 1
    if $objPPS.SlideShowWindow.view.Slide.Name = "slide3" Then ;si la diapo 3 est active alors
graph ();appel la fonction
Sleep(5000) ;attend x millisecondes que la diapo passe
close ()
EndIf
WEnd


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


Func close ()
_PPT_PresentationClose($objPPS) ; ferme la presentation
_PPT_PowerPointQuit ($objPPT);Exit PowerPoint
EndFunc
Cut, srcipteur du dimanche...désolé !-)
Répondre