Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Заблокирован

Как нажать на клавишу через api X11 ?

14.08.2014, 08:20. Показов 1307. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как нажать на клавишу через api X11 ?

Добавлено через 40 минут
я нашел данный код http://www.doctort.org/adam/ne... event.html:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
   void MainWindow:pressKeyButton(){
 // Obtain the X11 display.
       Display *display = XOpenDisplay(0);
       if(display == NULL)
          return -1;
 
    // Get the root window for the current display.
       Window winRoot = XDefaultRootWindow(display);
 
    // Find the window which has the current keyboard focus.
       Window winFocus;
       int    revert;
       XGetInputFocus(display, &winFocus, &revert);
 
    // Send a fake key press event to the window.
       XKeyEvent event = createKeyEvent(display, winFocus, winRoot, true, 0x0041, 0);
       XSendEvent(event.display, event.window, True, 0x0041, (XEvent *)&event);
 
    // Send a fake key release event to the window.
       event = createKeyEvent(display, winFocus, winRoot, false, 0x0041, 0);
       XSendEvent(event.display, event.window, True, 0x0041, (XEvent *)&event);
 
    // Done.
       XCloseDisplay(display);
 
}
 
XKeyEvent createKeyEvent(Display *display, Window &win,
                           Window &winRoot, bool press,
                           int keycode, int modifiers)
{
   XKeyEvent event;
 
   event.display     = display;
   event.window      = win;
   event.root        = winRoot;
   event.subwindow   = None;
   event.time        = CurrentTime;
   event.x           = 1;
   event.y           = 1;
   event.x_root      = 1;
   event.y_root      = 1;
   event.same_screen = True;
   event.keycode     = XKeysymToKeycode(display, 0x0041);
   event.state       = modifiers;
 
   if(press)
      event.type = KeyPress;
   else
      event.type = KeyRelease;
 
 
}
пишу я в qtcreator'e, как правильно объявить данные функции в файле MainWindow.h ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.08.2014, 08:20
Ответы с готовыми решениями:

Как программно нажать клавишу
По теме вроде как понятно. Ребят подскажите пожалуйста...

Как программно нажать клавишу [=] и [-]?
Почти все поисковики перерыл, а ответа так и не нашел =( Мне нужно программно нажать клавиши и , те которые следуют за (1,2,3,4 ......

Как нажать клавишу нарисованную на картинке
Добрый день, помогите пожалуйста с вопросом. В определенной части экрана будут появляться картинки и по этим картинкам надо чтобы программа...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.08.2014, 08:20
Помогаю со студенческими работами здесь

Как программно нажать клавишу Windows?
Знаю подобных вопросов на форуме много, но все же прочитав большую их часть, я не нашел ответа, как же все таки программно нажать на...

Как программно нажать на клавишу WIN?
Да, есть класс SendKeys, с помощью которого можно программно нажимать на клавиши(даже статья есть *ссылка ниже) но там нет упоминания про...

как программно нажать клавишу Enter?
как программно нажать клавишу Enter? Спасибо, Антон.

Как программно нажать клавишу в другом прилжении
Пожалуйста помогите решить проблему. Нужны просто строчки, в которых ответ к вопросу: Как програмно нажать в свернутом окне кнопку. Или...

Как программно нажать клавишу в неактивное окно?
как программно нажать клавишу в неактивное окно с помощью функции SendMessage? пробовал так: #include <windows.h> int main(){ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru