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 :
L'autre partie, celle nécessaire à piloter Impress, j'ai également un code qui fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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)
Merci d'avance à tous ceux qui me permettront d'avancer par quelques pistes que ce soit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()
Partager