Passer à la diapositive suivante
Bonjour,
Je cherche à réaliser un programme qui me permettrai de changer la diapositive d'une présentation LibreOffice Impress, même si le focus n'est pas dessus. Pour récupérer l'information clavier j'utilise PyHook. J'ai un bout de code qui fonctionne et me permet d'afficher que la barre d'espace est appuyée :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| import pyHook, pythoncom
txt="La barre d'espace est appuyée!!!"
def OnKeyboardEvent(event):
if event.KeyID==32:
print(txt)
return event.KeyID
hooks_manager = pyHook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
hooks_manager.HookKeyboard()
pythoncom.PumpMessages() |
L'autre partie, celle nécessaire à piloter Impress, j'ai également un code qui fonctionne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| import time
from win32com.client.dynamic import Dispatch
print('connexion au document impress')
objServiceManager = Dispatch('com.sun.star.ServiceManager')
Stardesktop = objServiceManager.CreateInstance('com.sun.star.frame.Desktop')
diaporama = Stardesktop.getCurrentComponent()
Pres = diaporama.Presentation
time.sleep(5)
print('démarrage du diaporama')
Pres.start()
time.sleep(2)
Pres.Controller.gotoSlideIndex(1) |
Voilà où j'en suis et où je commence à bloquer. Dans l'idée, voici ce que je souhaiterai faire mais j'obtiens un message d'erreur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| import time
from win32com.client.dynamic import Dispatch
print('connexion au document impress')
objServiceManager = Dispatch('com.sun.star.ServiceManager')
Stardesktop = objServiceManager.CreateInstance('com.sun.star.frame.Desktop')
diaporama = Stardesktop.getCurrentComponent()
Pres = diaporama.Presentation
time.sleep(5)
print('démarrage du diaporama')
Pres.start()
time.sleep(2)
import pyHook, pythoncom
SlideNo=0
txt="La barre d'espace est appuyée!!!"
def OnKeyboardEvent(event):
global SlideNo
global Pres
if event.KeyID==32:
print(txt)
SlideNo = SlideNo + 1
Pres.Controller.gotoSlideIndex(SlideNo)
return True
hooks_manager = pyHook.HookManager()
hooks_manager.KeyDown = OnKeyboardEvent
hooks_manager.HookKeyboard()
pythoncom.PumpMessages() |
Merci d'avance à tous ceux qui me permettront d'avancer par quelques pistes que ce soit.