ks_ks
@ks_ks

Перехват событий мыши и клавиатуры в Gnome?

Данное решение взято отсюда.
<font color="#008000"><strong>from</strong></font>&nbsp;<font color="#0000FF"><strong>Xlib.display</strong></font>&nbsp;<font color="#008000"><strong>import</strong></font>&nbsp;Display<br/>
<font color="#008000"><strong>from</strong></font>&nbsp;<font color="#0000FF"><strong>Xlib</strong></font>&nbsp;<font color="#008000"><strong>import</strong></font>&nbsp;X<br/>
display&nbsp;<font color="#666666">=</font>&nbsp;Display(<font color="#BA2121">&#39;:0&#39;</font>)<br/>
root&nbsp;<font color="#666666">=</font>&nbsp;display<font color="#666666">.</font>screen()<font color="#666666">.</font>root<br/>
root<font color="#666666">.</font>grab_pointer(<font color="#008000">True</font>,&nbsp;X<font color="#666666">.</font>ButtonPressMask&nbsp;<font color="#666666">|</font>&nbsp;X<font color="#666666">.</font>ButtonReleaseMask,&nbsp;X<font color="#666666">.</font>GrabModeAsync,&nbsp;X<font color="#666666">.</font>GrabModeAsync,&nbsp;<font color="#666666">0</font>,&nbsp;<font color="#666666">0</font>,&nbsp;X<font color="#666666">.</font>CurrentTime)<br/>
<font color="#008000"><strong>while</strong></font>&nbsp;<font color="#008000">True</font>:<br/>
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000"><strong>print</strong></font>&nbsp;<font color="#BA2121">&quot;Event:&quot;</font><br/>
&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008000"><strong>print</strong></font>&nbsp;display<font color="#666666">.</font>next_event()<br/>


Вот такая хрень вроде работает. Как она это делает? :)


Проблема в том, что виснет, падлюка… и пока насильно не завершишь программу(exit()) — невозможно переключить окошко в другое, или выйти из этого… перехват нажатий мышки же осуществляет исправно, но делать ничего не позволяет, за пределами этого окна. Как избежать проблемы?


Аналогичная ситуация возникает, при добавлении клавиатуры посредством того, что написано здесь — метода grab_keyboard(), который заполняется параметрами по-аналогии с grab_pointer(). Только с клавой получается ещё хуже — она после запуска скрипта не реагирует на нажатия вообще. Более того — окно терминала перестает реагировать на нажатие мышки. Приходится перезагружать комп.
  • Вопрос задан
  • 3139 просмотров
Пригласить эксперта
Ответы на вопрос 1
alternativshik
@alternativshik
Попробуйте посмотреть сорц xneur
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы