[JNA] Problème avec GetMessage
Bonjour,
Je voudrais écrire un petit programme Java qui permet de recevoir les évènements lock/unlock d'une session windows.
Tout d'abord je crée une fenêtre windows :
Code:
1 2 3 4 5 6
|
Canvas win = new Canvas();
Window window = new Window(null);
window.add(win);
window.setVisible(true);
win.setVisible(true); |
Après, je récupère un objet HWND depuis cette fenêtre :
Code:
1 2 3
|
HWND hwnd = new HWND();
hwnd.setPointer(Native.getComponentPointer(win)); |
Pour s'enregistrer au prés du système afin de recevoir les évènnements j'utilise l'API Windows Wts32Api.dll et ça méthode WTSRegisterSessionNotification :
Code:
1 2 3 4
|
DWORD flag = new DWORD(0); // j'ai même essayer avec la valeur 1 "NOTIFY_FOR_ALL_SESSION"
Wts32Api lib = Wts32Api.INSTANCE;
boolean response = lib.WTSRegisterSessionNotification(hwnd, flag); |
Enfin, j'appel la fonction GetMessage comme suit :
Code:
1 2 3 4 5 6 7 8
|
User32 user32 = MyUser32.INSTANCE;
MSG msg = new MSG();
while (user32.GetMessage(msg, hwnd, 0, 0) != 0) {
//user32.TranslateMessage(msg);
//user32.DispatchMessage(msg);
System.out.println("got a message");
} |
Le problème que la méthode GetMessage reçoit pas les événements.
A mon avis les méthode WTSRegisterSessionNotification et GetMessage ne sont pas exécuter dans le même process/thread, d'où GetMessage ne reçoivent pas les événements
Des suggestions :calim2::calim2:
Merci pour vos réponses.