2024-07-12 15:11:31 +02:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <X11/Xlib.h>
|
|
|
|
#include <X11/Xutil.h>
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
Display *display;
|
|
|
|
Window root;
|
|
|
|
|
|
|
|
display = XOpenDisplay(NULL);
|
|
|
|
|
|
|
|
if (!display) {
|
|
|
|
fprintf(stderr, "Impossible d'ouvrir l'affichage\n");
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
root = DefaultRootWindow(display);
|
|
|
|
|
|
|
|
// Capturer la souris
|
|
|
|
XGrabPointer(display, root, False, ButtonPressMask, GrabModeAsync, GrabModeAsync, None, None, CurrentTime);
|
|
|
|
|
|
|
|
printf("La souris est actuellement bloquée. Quittez le programme pour pouvoir l'utilisé de nouveau\n");
|
|
|
|
|
|
|
|
XEvent ev;
|
2024-08-28 21:58:35 +02:00
|
|
|
while (1) {
|
2024-07-12 15:11:31 +02:00
|
|
|
XNextEvent(display, &ev);
|
|
|
|
|
|
|
|
if (ev.type == KeyPress) {
|
|
|
|
if (XLookupKeysym(&ev.xkey, 0) == XK_Escape) {
|
2024-08-28 21:58:35 +02:00
|
|
|
break; // Quitte le programme si ctrl + C est pressé
|
2024-07-12 15:11:31 +02:00
|
|
|
}
|
|
|
|
}
|
2024-08-28 21:58:35 +02:00
|
|
|
}
|
2024-07-12 15:11:31 +02:00
|
|
|
|
|
|
|
// Libérer la souris
|
|
|
|
XUngrabPointer(display, CurrentTime);
|
|
|
|
|
|
|
|
XCloseDisplay(display);
|
|
|
|
return 0;
|
|
|
|
}
|