LINUX.ORG.RU

Сообщения ArtemS2006

 

программирование в XWindow

Форум — Development

Добрый день! нашел в сети такой пример кода

#include <X11/Xlib.h> // Every Xlib program must include this
#include <assert.h>   // I include this to test return values the lazy way
#include <unistd.h>   // So we got the profile for 10 seconds
#include <iostream>

#define NIL (0)       // A name for the void pointer

main() {

    // Open the display
    Display *dpy = XOpenDisplay(NIL);
    assert(dpy);

    // Get some colors
    int whiteColor = WhitePixel(dpy, DefaultScreen(dpy));

    // Create the window
    Window w = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 0, 0,
            200, 100, 0, whiteColor, whiteColor);

    // Grab F2 key with code 68 (experiment by yourself)
    int F2_KEY = 68;

XGrabKey( dpy, 
F2_KEY, 
AnyModifier, 
w, //DefaultRootWindow (dpy), //<-----
true, 
GrabModeAsync, 
GrabModeAsync 
);

    // "Map" the window (that is, make it appear on the screen)
    XMapWindow(dpy, w);

    // Infinite loop ( hazard thing ;) )
    for(;;) {
        XEvent e;
        XNextEvent(dpy, &e);
        if (e.type == KeyPress )
        {
            printf( "F2 was pressed!!!\n" );
        }
    }
}

если в строке помеченной //<----- использовать DefaultRootWindow (dpy), то получаю ошибку времени выполнения

X Error of failed request: BadAccess (attempt to access private resource denied) Major opcode of failed request: 33 (X_GrabKey) Serial number of failed request: 8 Current serial number in output stream: 9

даже из под sudo

Вообще, этим кодом (DefaultRootWindow (dpy),) я пытаюсь сделать глобальный хук клавы, то есть пытаюсь повесить хук на основное окно десктопа.

Таким образом работает утилита xbindkeys

как заставить это работать?

ArtemS2006
()

запрет скриншота

Форум — Development

добрый день! необходимо реализовать сабж - запретить скриншотить окно графического приложения, либо полностью запретить скриншоты когда это приложение запущено. проблема в том, что до этого никогда не сталкивался с программированием под линукс. можно ли реализовать сабж функциями стандартной библиотеки linux либо же нужно ковырять в интерфейсе XWindow? ничего путного пока ненагуглил.

ArtemS2006
()

RSS подписка на новые темы