User Tag List

Страница 24 из 101 ПерваяПервая ... 202122232425262728 ... ПоследняяПоследняя
Показано с 231 по 240 из 1003

Тема: Эмулятор терминала типа VT52

  1. #231

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

    По умолчанию

    Да, я тоже заподозрил там ошибку, но решил, пока сам не разберусь, не говорить)

    Попробовал DirectInput8 - все тоже самое, но функционала больше. А так тоже блокирует глобльный хук.

    Ну что же, похоже, действительно придется делать хук и в нем формировать массив из клавиш плюс дополнительная клавиша энтера нумпада. Сделаю конвертирование сканкодов VK_ в DIK_, т.к. у меня все заточено под них.

  2. #232

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    придется делать хук и в нем формировать массив из клавиш
    Глобальный хук стандартен в модульном API, но на массив клавиш пока стандарта нет - мне этот массив понадобится только в эмуляторе КСМ, делать который я ещё не начал. Поэтому, если есть конструктивные идеи относительно универсального массива клавиш, пригодного для использования в любом эмуляторе - это будет кстати.

    Поскольку в модульном API глобальный хук один на все экземпляры программ, использующих этот API - программа не сможет изменять глобальный массив клавиш, а только получать оттуда значения.

  3. #233

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

    По умолчанию

    И все-таки меня вот ЭТО настараживает:

    Теперь надо сделать небольшое лирическое отступление от данной темы, для лучшего понятия описываемого механизма. В 32-битных (а далее в 64-битных) операционных системах Windows каждый процесс в системе имеет своё собственное обособленное адресное пространство. Обратиться к чужому адресному пространству можно только через несколько API функций и имея определённые привилегии. Т.е. по одному и тому же адресу в разных процессах могут быть совершенно разные данные. Для того чтобы фильтрующая функция могла обработать сообщение, она должна находиться в памяти именно того процесса, которому принадлежит целевое окно и оконная функция. Итак, если хук устанавливается на всю систему, то фильтрующая функция должна быть загружена в каждый процесс, у которого есть хотя бы один цикл сообщений c использованием функций GetMessage или PeekMessage. Единственный стандартный способ загрузки нашего кода в чужой процесс, это использование DLL. Т.е. для нормального функционирования хуков установленных на всю систему необходимо использовать DLL.

  4. #234

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    И все-таки меня вот ЭТО настараживает:
    Чепуха.

    Я в этом вопросе собаку съел и в модульном API любой EXE-шник может выступать провайдером глобальной таблицы клавиш, доступной всем процессам Windows, использующим модульный API.

    Т.е. код глобального хука есть у всех одновременно запущенных EXE-шников модульного API, но в любой момент времени работает только один из этих глобальных хуков, который и обслуживает глобальную таблицу.
    Последний раз редактировалось Patron; 01.01.2013 в 04:38.

  5. #235

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

    По умолчанию

    Тут, как я понял, имеется в виду другое.
    Библиотечная функция имеет адресное пространство, доступное всем процессам. А твой конкретный экзешник, внутри которого код хука, может и не быть доступен другим процессам. Может это зависит от конкретной системы, многоядерности или еще чего. Я с этой стороны Виндовс знаю слабо.

  6. #236

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    конкретный экзешник, внутри которого код хука, может и не быть доступен другим процессам
    Это проблемы Windows. В XP и дальше - глобальный хук прекрасно работает из EXE. Т.к. модульный API работоспособен только в среде XP, то если работает API - работает и глобальный хук.

  7. #237

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Это проблемы Windows. В XP и дальше - глобальный хук прекрасно работает из EXE. Т.к. модульный API работоспособен только в среде XP, то если работает API - работает и глобальный хук.
    В общем, это надо попроверять на разных вин-системах, с разными ядрами и многоядерностями. Не с потолка же в MSDN так сказано.

  8. #238

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    это надо попроверять на разных вин-системах
    Вот консольный вариант хук-теста.

    Запускаем, переходим в окно блокнота, давим все кнопки подряд и радуемся.

    ...
    Вложения Вложения

  9. #239

    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    374
    Поблагодарили
    311 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Запускаем,
    Что то не вышло у меня с запуском на ноуте! )



    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  10. #240

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

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Что то не вышло у меня с запуском на ноуте!
    Там резидентный антивирус запрещает глобальные хуки. Нужно "прописать" там тест так же, как "эмулятор ДВК", который на этом ноуте тоже пришлось с бубном запускать.

Страница 24 из 101 ПерваяПервая ... 202122232425262728 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. [Аукционъ] Клавиатура от терминала ЕС-7927
    от BYTEMAN в разделе Барахолка (архив)
    Ответов: 18
    Последнее: 15.05.2012, 14:50
  2. Срочно ищу монитор от терминала 15ИЭ-00-013 (от ДВК-2)
    от dk_spb в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 10.02.2012, 10:19
  3. Куплю клавиатуру КМ-035 для терминала СМ 7238
    от Kronshou в разделе Барахолка (архив)
    Ответов: 5
    Последнее: 13.09.2010, 23:33
  4. C64 или C128 в качестве терминала под Linux
    от Vinnny в разделе Commodore 16/64/128
    Ответов: 6
    Последнее: 14.12.2007, 16:39
  5. Подгрузка pc-файла типа "codes" в эмулятор
    от maximk в разделе Эмуляторы
    Ответов: 15
    Последнее: 13.11.2006, 15:46

Ваши права

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