Quels events catchés par DoEvents ? [Powerpoint VBA 6] - VB/VBA/VBS - Programmation
Marsh Posté le 09-12-2004 à 01:30:27
Finalement, j'ai trouve une solution qui me semble assez propre pour faire la requete que pour le slide courant.
|
En revanche, j'ai pas encore trouve comment catcher tous les evenements.
Est-ce que quelqu'un a essaye les fonctions GetInputState et GetQueueStatus ? (cf. par exemple cet article)
J'ai vaguement essaye mais ca n'a pas donne de resultats flambants... Vous avez peut-etre des tips a ce sujet ?
Merci !
Raspoutim
Marsh Posté le 07-12-2004 à 22:39:58
Bonjour tout le monde,
je bosse en ce moment sur un addin pour PowerPoint (donc je bosse en VBA).
Ce que je veux faire c'est envoyer les titres des slides a un site web pendant un slideshow.
J'ai reussi a faire ca mais j'ai realise que l'appel http prend du temps et du coup, j'aimerais faire cet appel uniquement pour les slides sur lesquels je reste plus d'une seconde. (autrement c'est impossible de naviguer entre les slides correctement)
Donc, j'ai un Sub App_SlideShowNextSlide qui est lance quand je change de slide (logique !).
La, j'ai :
index = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
Delay 1
If (index = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex) Then
MsgBox "send the title"
Call SendTitleFunction
End If
et ma fonction Delay est :
Function Delay(nbSeconds As Double) As Boolean
Const OneSecond As Double = 1# / (1440# * 60#)
Dim endTime As Date
endTime = Now + OneSecond * nbSeconds
Do Until Now > endTime
Sleep 100
DoEvents
Loop
End Function
Le probleme est que si j'utilise la barre d'espace, les fleches ou 'page up' 'page down', il semble que le DoEvents ne les prends pas en compte et envoie ainsi le titre.
La presence de index dans SlideShowNextSlide est pour ne pas envoyer le slide si jamais j'ai change de slide pendant l'attente (solution pas ideale, je voudrais pouvoir arreter tous les appels a Delay a chaque fois que je change de slide).
Donc, mes questions sont :
-avez-vous une meilleure solution pour remplacer la verification avec index ?
-ai-je raison pour les events effectivement catches par DoEvents ? et si oui, comment puis-je catcher tous les evenements de changement de slide ?
Si vous pouvez m'aider ce serait cool. Merci d'avance !
R.
Message édité par Raspoutim le 09-12-2004 à 01:20:59