User Tag List

Страница 39 из 112 ПерваяПервая ... 353637383940414243 ... ПоследняяПоследняя
Показано с 381 по 390 из 1115

Тема: Эмулятор УКНЦ - UKNCBTL

  1. #381

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Я опрашиваю в своих эмуляторах клавиатуру через DirectInput, функция GetDeviceState(), и там прекрасно различаются оба Enter-а. Главный имеет код DIK_RETURN, а который на дополнительном нумпаде - DIK_NUMPADENTER.
    Так ведь это же надо DirectX использовать. Лучше пока без этих наворотов.

    ---------- Post added at 12:56 ---------- Previous post was at 12:54 ----------

    Цитата Сообщение от Titus Посмотреть сообщение
    Я опрашиваю в своих эмуляторах ...
    Надеюсь свой эмулятор УКНЦ тоже пишите?

  2. #382

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,373
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Так ведь это же надо DirectX использовать. Лучше пока без этих наворотов.
    Ну, если у вас позицируется, как крсоссплатформенная, то может быть.
    А так, если для PC, то там директикс по умолчанию. Кстати, как без директикса синхронизироваться с лучом, использовать что-то типа BitBlt, а так же иметь доступ к звуковому буферу с точностью до позиции текущего проигрываемого отсчета?

    ---------- Post added at 12:57 ---------- Previous post was at 12:56 ----------

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Надеюсь свой эмулятор УКНЦ тоже пишите?
    Да, ну легкотня) Вот спектрум - это сложнее)))

  3. #383

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я в своём эмуляторе терминала разбираю скан-коды клавиш:
    Код:
    		case WM_SYSKEYDOWN:
    		{
    			word uScan = HIWORD(lParam);
    			uScan &= 0x1FF;
    Код:
    		case WM_KEYDOWN:
    		{
    			word uScan = HIWORD(lParam);
    			uScan &= 0x1FF;
    У главной клавиши <Enter> код 28, у <NumPadEnter> код 284.

    Хук нужен только для передачи окну скан-кодов клавиш VK_LWIN, VK_RWIN, VK_APPS, VK_SNAPSHOT и VK_NUMLOCK и отмены (при необходимости) передачи этих кодов в драйвер клавиатуры Windows. Скан-коды всех остальных клавиш передаются через сообщения WM_KEYDOWN и WM_SYSKEYDOWN совершенно стандартно.

  4. #384

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Я в своём эмуляторе терминала разбираю скан-коды клавиш:
    case WM_SYSKEYDOWN:
    case WM_KEYDOWN:
    У главной клавиши <Enter> код 28, у <NumPadEnter> код 284.
    Patron, в ранних версиях было также. Там в коде остались даже закомментированные места с использованием WM_KEYDOWN и WM_KEYUP. Но с УКНЦ тут есть некоторые моменты. Клавиатура передает как коды отжатия, так и нажатия, тем более скэн-коды, преобразование в КОИ-8 уже производится в драйвере клавиатуры в системном ПЗУ. Соответственно, если эмулятор получил по WM_KEYDOWN код клавиши, потом пропал фокус ввода, а клавишу отжали, то уже события WM_KEYUP не придет. Сама клавиша западёт в автоповтор в драйвере системного ПЗУ. А при использовании GetKeyboardState при получении фокуса клавиша не будет нажата и клавиатура в эмуляторе уже получит код отжатия.
    Так же в УКНЦ клавиатура работает в режиме опроса, по 64 мкс на каждую клавишу, всего 128 клавиш. Получил таблицу, установил виртуальную матрицу в УКНЦ, и особо думать не надо.
    Если же эмулировать 15ИЭ-00-013, то да, здесь я согласен - использовать WM_KEYDOWN значительно удобнее. Т.к. 15ИЭ-00-013 всё-таки терминал, то и проблема удобной раскладки решается легко.

  5. #385

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,373
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А при использовании GetKeyboardState при получении фокуса клавиша не будет нажата и клавиатура в эмуляторе уже получит код отжатия.
    В чем проблема? Если окно потеряло фокус, всем клавишам дается команда 'отжать'.

  6. #386

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    В чем проблема? Если окно потеряло фокус, всем клавишам дается команда 'отжать'.
    А если осталась нажатая?

  7. #387

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,373
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А если осталась нажатая?
    Как вы себе представляете потерю фокуса с нажатой клавишей?
    Держу клавишу, и нажимаю мышкой на другое окно? В любом случае, плохого ничего не будет, если клавиша отожмется, хотя она осталась нажатой на самом деле.

  8. #388

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А если осталась нажатая?
    Если при потере фокуса эмулятор эмулирует отжатие всех клавиш - это совершенно логично и абсолютно безопасно ( побочных эффектов быть не может ).

  9. #389

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,247
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    638
    Поблагодарили
    414 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Как вы себе представляете потерю фокуса с нажатой клавишей?
    Держу клавишу, и нажимаю мышкой на другое окно? В любом случае, плохого ничего не будет, если клавиша отожмется, хотя она осталась нажатой на самом деле.
    Всякое может быть, какое-нибудь pop-up окно выскочет.
    Цитата Сообщение от Patron Посмотреть сообщение
    Если при потере фокуса эмулятор эмулирует отжатие всех клавиш - это совершенно логично и абсолютно безопасно ( побочных эффектов быть не может ).
    Спасибо всем за советы! Но пока пусть останется, как есть. Эмулировать отжатие клавиш сейчас довольно просто - надо только очистить матрицу клавиш, соответственно вслед за этим придут все кода отжатия, которые нужны.

  10. #390

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,373
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Всякое может быть, какое-нибудь pop-up окно выскочет.

    Спасибо всем за советы! Но пока пусть останется, как есть. Эмулировать отжатие клавиш сейчас довольно просто - надо только очистить матрицу клавиш, соответственно вслед за этим придут все кода отжатия, которые нужны.
    Вообще странно, всегда делают, что программа реагирует на клавиши только если окно в фокусе. И само собой очевидно, что надо их всех отпускать при потери оного.

Страница 39 из 112 ПерваяПервая ... 353637383940414243 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Эмулятор УКНЦ - EmuStudio
    от Titus в разделе Эмуляторы отечественных компьютеров
    Ответов: 1198
    Последнее: 07.05.2025, 13:34
  2. Ответов: 247
    Последнее: 17.11.2024, 07:55
  3. Эмулятор УКНЦ на JavaScript
    от nzeemin в разделе Эмуляторы отечественных компьютеров
    Ответов: 4
    Последнее: 27.04.2021, 14:26
  4. УКНЦ и Gotec Flash Floppy эмулятор
    от Ynicky в разделе ДВК, УКНЦ
    Ответов: 10
    Последнее: 10.09.2019, 04:34
  5. Продам МС5310 блок дисководов к УКНЦ+КМД УКНЦ
    от Mad Killer/PG в разделе Барахолка (архив)
    Ответов: 7
    Последнее: 19.03.2012, 11:27

Ваши права

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