The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"XKeyEvent"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"XKeyEvent"
Сообщение от zumo emailИскать по авторуВ закладки(ok) on 02-Ноя-04, 00:49  (MSK)
Вобщем пишу я аналог пунто свитчера и запоролся на посылке нажатий клавиш окну вобщем написал следующее
int sendkey(int keycode)
{
XKeyEvent xev; // тип события
XGetInputFocus(disp, &focus_return, &revert_to_return); // получаем фокус ввода
xev.window = focus_return;
xev.serial       = 0;
xev.send_event   = 0;
xev.type         = KeyPress; // какое событие
xev.display      = disp;
xev.root         = None;
xev.subwindow    = None;
xev.time         = 0;
xev.same_screen  = 1;
xev.state        =0;
xev.x            = 1;
xev.y            = 1;
xev.x_root       = 1;
xev.y_root       = 1;
xev.keycode = keycode; // код кнопки (для русской д 196 напр)
(void) XSendEvent(disp, xev.window, True, KeyPressMask,
(XEvent *)&xev);
XFlush(disp);

xev.type         = KeyRelease; /// отпускаем кнопку
(void) XSendEvent(disp, xev.window, True, KeyReleaseMask,
(XEvent *)&xev);
XFlush(disp);
printf("Sending\n");

}

все вродебы хорошо .... с английскими буквами (кейкоды до 127) по если передать кейкод русской буквы то ровным счётом ничего не произойдёт ,,,,
ктонибудь знает как послать русскую букву иксовому окну ?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

  • XKeyEvent, rWizard, 09:53 , 02-Ноя-04, (1)
    • XKeyEvent, zumo, 10:36 , 02-Ноя-04, (2)
      • XKeyEvent, rWizard, 11:41 , 02-Ноя-04, (3)
        • XKeyEvent, zumo, 12:16 , 02-Ноя-04, (4)
        • XKeyEvent, zumo, 13:35 , 02-Ноя-04, (5)
          • XKeyEvent, chip, 15:08 , 06-Ноя-04, (6)
            • XKeyEvent, zzzzzzumo, 20:28 , 06-Ноя-04, (7)
              • XKeyEvent, chip, 20:55 , 06-Ноя-04, (8)

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "XKeyEvent"
Сообщение от rWizard emailИскать по авторуВ закладки(ok) on 02-Ноя-04, 09:53  (MSK)
а где просиходит преобразование кода нажатой _клавиши_ в код _буквы_,
которая отдается приложению?
может-быть ты посылаеш код _клавши_?

http://www.xfree86.org.ru/4.0/XButtonEvent.3.html
цитата:
    unsigned int state;    /* key or button mask */
    unsigned int keycode;    /* detail */
это-же
key, а не symbol code

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "XKeyEvent"
Сообщение от zumo emailИскать по авторуВ закладки(ok) on 02-Ноя-04, 10:36  (MSK)
Нет дело не в этом я написал вышепиведённое исходя из того что в данный момент у нас установлена русская раскладка .... а вобще я перепробовал следущие методы
............
xev.keycode = XKeysymToKeycode(disp,keysym);
............
не катит хотя кейсим указываю русский
............
xev.keycode = XKeysymToKeycode(disp,XStringToKeysym("ф"));
............
как ни крути шлёться англтйская А не зависимо от раскладки клавиатуры

Тут кстати заметил ещё 1 особенностть
если дисплей открывать
Display* disp = XkbOpenDisplay( "", &xkbEventType, &xkbError,
  NULL, NULL, &reason_rtrn);
то тогда прога ловит надалия русских кнопок а если
Display* disp = XOpenDisplay( "");
то только английские

но ведь как-тож программы получают русские буквы ?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "XKeyEvent"
Сообщение от rWizard emailИскать по авторуВ закладки(ok) on 02-Ноя-04, 11:41  (MSK)
Я-бы сделал так:
Узнал по какой "путь" проходит код нажатой клавиши от ядра до приложения, в амком месте от пробразовывается в код буквы, где его отлавливает XGrabKeybord, и куда его "вставляет"  XKeyEvent PresKey.
ИХМО, проблемма где-то там.
(точнее, к сожалению, сказать ничего не могу)
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "XKeyEvent"
Сообщение от zumo emailИскать по авторуВ закладки(ok) on 02-Ноя-04, 12:16  (MSK)
гы тут получилась интересная ситуация - написал прогу (текстовый редактор) в которой нажатия клавиатуры обрабатываються через XkbOpenDisplay а не через XOpenDisplay(так ловяться только английские)
и в неё поступают мои русские нажатия ......
;-) так что теперь дело за малым написать конвертор исходников всего софта + библиотек
перекомпилил Qt теперь кде ловит русские буквы

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "XKeyEvent"
Сообщение от zumo emailИскать по авторуВ закладки(ok) on 02-Ноя-04, 13:35  (MSK)
прямо цирк получаеться с переделаным qt всё глючит - стал разбираться в результате получился патч на ядро с которым теперь всё работает на ура с гтк проделал туже операцию теперь вроде всё работает


  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "XKeyEvent"
Сообщение от chip emailИскать по авторуВ закладки(ok) on 06-Ноя-04, 15:08  (MSK)
>прямо цирк получаеться с переделаным qt всё глючит - стал разбираться в
>результате получился патч на ядро с которым теперь всё работает на
>ура с гтк проделал туже операцию теперь вроде всё работает

Я извиняюсь, что врываюсь в Вашу беседу. Но думаю, что если "punto" будет требовать модификацию gtk/qt/ или какой-либо другой библиотеки...то проект заранее обречен.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "XKeyEvent"
Сообщение от zzzzzzumo Искать по авторуВ закладки on 06-Ноя-04, 20:28  (MSK)
а я этот проэкт пишу лично для себя и может вобще никому раздавать нихочу ?  так что коментирование методов реализации тут не уместно ....
лучше предложи свой вариант посылки клавиш - судя по всему послать русские клавиши не возможно в принципе окнам использующим функцию XOpenDisplay русский шлёться только тем кто использует XkbOpenDisplay те меняем 20 строчек в гтк и к-ют и всё работает

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "XKeyEvent"
Сообщение от chip emailИскать по авторуВ закладки(ok) on 06-Ноя-04, 20:55  (MSK)
>а я этот проэкт пишу лично для себя и может вобще никому
>раздавать нихочу ?

никто и не настивает :)

>так что коментирование методов реализации тут не
>уместно ....

критика всегда уместна. Другое дело, что каждый воспринимает ее по-своему.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру