Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
585 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Powerpoint VBA 6] Quels events catchés par DoEvents ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Powerpoint VBA 6] Quels events catchés par DoEvents ?

n°917526
Raspoutim
Posté le 07-12-2004 à 22:39:58  profilanswer
 

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
mood
Publicité
Posté le 07-12-2004 à 22:39:58  profilanswer
 

n°918527
Raspoutim
Posté le 09-12-2004 à 01:30:27  profilanswer
 

Finalement, j'ai trouve une solution qui me semble assez propre pour faire la requete que pour le slide courant.


Private Sub App_SlideShowNextSlide(ByVal wn As SlideShowWindow)
    Dim index As Integer
 
    index = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
    Module1.nbDelays = Module1.nbDelays + 1 'nbDelays est une variable booleenne globale
    Delay 2
    If Module1.nbDelays = 0 Then
        Call SendTitle
    End If
End Sub
 
 
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
Module1.nbDelays = Module1.nbDelays - 1
End Function


 
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


Message édité par Raspoutim le 09-12-2004 à 01:43:57

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Powerpoint VBA 6] Quels events catchés par DoEvents ?

 

Sujets relatifs
débutant en VBA (petit probléme)Automatiser un solveur sur excel en VBA
screeunpdating=false sous VBA ACCESSOutlook, envoi de message avec VBA
Accès comptes mail Outlook par VBAvba et word
Problème VBA Copier celulles dans autres celullesVBA et feuilles de calculs excel
Winzip et le VBApc vba avec un sous formulaire
Plus de sujets relatifs à : [Powerpoint VBA 6] Quels events catchés par DoEvents ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR