Как да извличате данни във фонов процес в Ubuntu

Намирам команда на Ubuntu OS, която позволява на програмата да чете данните от клавиатурата, дори ако програмата е във фонов режим. Опитах се да го търся много, но не успях. Ако някой програмист на Ubuntu/Linux знае командата на OS, която позволява на програмата да го направи, моля, споделете я с мен.

Аз съм начинаещ в програмирането на Ubuntu.


person user1698102    schedule 05.10.2012    source източник


Отговори (2)


Можете да използвате подсистемата за въвеждане на Linux, за да четете събития от мишки и клавиатури. Ще работи само ако вашето приложение има необходимите права. По принцип трябва да стартирате приложението като root, за да работи това.

Ако не можете да стартирате като root, не трябва да се опитвате да наблюдавате клавиатурата.

Можете да създадете X11 приложение за наблюдение на събитията на клавиатурата в текущата сесия. Работи само за текущия потребител и в текущата графична среда и може да не може да наблюдава привилегировани диалогови прозорци, например въвеждане на парола. За подробности погледнете инструмента за стартиране на бързи клавиши за приложения за вашата работна среда; всички Linux DE, за които съм чувал, имат такъв.

Мисля, че старите статии в Linux Journal, Входната подсистема Linux USB и Използване на подсистемата за въвеждане все още са едно от най-добрите въведения в подсистемата за въвеждане на Linux. Повечето дистрибуции на Linux в днешно време също поддържат uinput, подобно устройство, което позволява инжектиране на входни събития обратно към подсистемата на ядрото, проектирано да позволява драйвери на устройства за въвеждане на потребителско пространство. Техните интерфейси са описани в /usr/include/linux/input.h и /usr/include/linux/uinput.h. Препоръчвам ви да започнете от горните статии и след това да разгледате някои input и uinput примери.

person Nominal Animal    schedule 05.10.2012

Ако ви е удобно да използвате програма, погледнете проекта Logkeys. Той директно приема вход от /dev/input/event*.

person Nikhil Nilawar    schedule 16.05.2018