Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт апр 28, 2017 5:19 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 24 сообщения ]  На страницу Пред. 1 2
Автор Сообщение
 Заголовок сообщения: Re: Эмулятор клавиатуры
СообщениеДобавлено: Пт сен 11, 2009 1:43 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт янв 15, 2008 9:30 am
Сообщения: 61
Если не секрет , какими?

_________________
Мы не часть этого мира , мы его творцы :)


Вернуться к началу
 Заголовок сообщения: Re: Эмулятор клавиатуры
СообщениеДобавлено: Сб сен 19, 2009 7:38 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 971
Да не то чтобы секрет, только зачем обнадёживать людей если работа ещё далека от завершения.


Вернуться к началу
 Заголовок сообщения: Re: ZKEY - эмулятор клавиатуры
СообщениеДобавлено: Чт июл 18, 2013 5:02 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 910
Было бы удобнее, если бы программа сама могла определить режим ввода с клавиатуры(scan\ascii) для приложения, которому будут посылаться сообщения о нажатии клавиш. Насколько я понимаю, сейчас это сделать нельзя.
Можно выводить в буфер SysFn9. Тогда надо будет добавить в kernel.asm:
Код:
sys_cpuusage:
; .................................................................   
    ; Event mask (+71)
        mov     EAX, dword [ECX+CURRENT_TASK+TASKDATA.event_mask]
        stosd
            
+    ; Keyboard mode (+75)
+       mov     al, dword [ecx*8 + SLOT_BASE + APPDATA.keyboard_mode]
+       stosb            
                        
        pop     esi
        pop     edi   
; .................................................................


Вернуться к началу
 Заголовок сообщения: Re: ZKEY - эмулятор клавиатуры
СообщениеДобавлено: Ср ноя 20, 2013 10:19 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 910
Ну так я добавлю? И ZKey будет автоматически определять режим ввода.

Только в ZKey такая проблема:
Код:
draw_window:
  test    byte [red_type], 1
  jnz    @f
  test    byte [red_type], 2
  jnz    .draw_switch_button
  start_draw_window 100,370,600,210,0x14224466,labelt

То есть, сейчас start_draw_window пропускается и старая кнопка не удаляется.
Там, где я добавлю свой код, я буду удалять, а остальное я трогать не буду:
Код:
still:
   call   get_receiver_window_slot_number
+   call   get_receiver_window_keyboard_mode
+   call   set_keyboard_mode
+ ; delete_switch_button
+   mov eax, 8
+   mov edx, 0x80700000
+   int   0x40
+   call   draw_window.draw_switch_button
 

Код:
 .draw_switch_button:
  mov   eax, 6
  mul   byte [keyboard_mode]
  add   eax, SwitchText
  stdcall draw_button, 513,28,46,20,106,0x00700000,eax,6,TEXTCOLOR    ; Scan/ASCII switch
@@:
 .draw_indicators_area:
  call lights_on

+  xor al, al
+  xchg al, [red_type]

  mov   byte [red_type], 0
 
+  test    al, 2
+  jnz    .skip_end_draw_window
 
  end_draw_window
 
+ .skip_end_draw_window: 


Вернуться к началу
 Заголовок сообщения: Re: ZKEY - эмулятор клавиатуры
СообщениеДобавлено: Ср ноя 20, 2013 10:32 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Добавляй, но желательно доступными способами убедиться, что не вызовет проблем. Хотя теоретически все приложения выделяют полный размер под буфер.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: ZKEY - эмулятор клавиатуры
СообщениеДобавлено: Ср ноя 20, 2013 10:39 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 910
Mario_r4 писал(а):
Хотя теоретически все приложения выделяют полный размер под буфер.
В документации написано:
Цитата:
======================================================================
============= Функция 9 - информация о потоке выполнения. ============
======================================================================
Параметры:
* eax = 9 - номер функции
* ebx = указатель на буфер размера 1 Кб


Вернуться к началу
 Заголовок сообщения: Re: ZKEY - эмулятор клавиатуры
СообщениеДобавлено: Ср ноя 20, 2013 10:50 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
А еще там:
Код:
  * В данный момент используется только часть буфера размером
    71 = 0x47 байта. Тем не менее рекомендуется использовать буфер
    размером 1 Кб для будущей совместимости, в будущем могут быть
    добавлены некоторые поля.

Но иногда программисты смотрят в код ядра и видят, что остальная область не используется. Понятно, что это ССЗБ, но тем не менее бывает.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: ZKEY - эмулятор клавиатуры
СообщениеДобавлено: Ср ноя 20, 2013 11:01 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 910
Mario_r4 писал(а):
А еще там:
Код:
* В данный момент используется только часть буфера размером
71 = 0x47 байта.
А в kernel.asm:
Цитата:
; Event mask (+71)
mov EAX, dword [ECX+CURRENT_TASK+TASKDATA.event_mask]
stosd
То есть, 75 на самом деле.


Вернуться к началу
 Заголовок сообщения: Re: ZKEY - эмулятор клавиатуры
СообщениеДобавлено: Чт ноя 21, 2013 12:30 am 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 910
Добавил автопереключение режима ввода с клавиатуры #4263.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 24 сообщения ]  На страницу Пред. 1 2

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB