Важная информация

User Tag List

Страница 16 из 100 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя
Показано с 151 по 160 из 992

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

  1. #151
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Мне с точки зрения програминга нужно
    С точки зрения программинга это нереально сложно. Для реализации нужен глобальный хук клавиатуры, который может быть только один. Но если программа может быть запущена в нескольких копиях и, возможно, из разных каталогов одновременно ( как, например, эмулятор ДВК и эмулятор VT52 ) - то для обеспечения нормальной работы всех запущенных экземпляров через единый глобальный хук - запущенные экземпляры должны реализовывать довольно сложный протокол глобального арбитража работы глобального хука. Ведь если завершится та программа, которая была запущена первой - роль "провайдера глобального хука" должна немедленно перейти к одной (и только одной) из позднее запущенных её копий.

  2. #151
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #152
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    С точки зрения программинга это нереально сложно.
    Ну ты уже писал в двух словах как-то что нужно делать, я просто потерял где это было
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  4. #153
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не исключено, что я чего-то недопонял и можно нормально работать с неcколькими глобальными хуками одновременно, но тогда и спрашивать нужно не у меня, а у того, кто умеет легко и просто программировать глобальные хуки.

  5. #154
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Не исключено, что я чего-то недопонял и можно нормально работать с неколькими глобальными хуками одновременно, но тогда и спрашивать нужно не у меня, а у того, кто умеет лекго и просто программировать глобальные хуки.
    На данный момент у тебя в эмуляторе терминала можно включить режим когда NumLock не переключается. Все, что нужно - это принцип как оно сделано. А всякие слова умные - это пусть они там в dbit сами разбираются. Я пока нет потребности гуевые проги в виндовсе делать, не полезу изучать как оно там делается - с меня пока и mingw + dmc хватит, ну в крайнем случае SDL
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  6. #155
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    я просто потерял где это было
    Я ухитрился найти ссылку Гуглом: Глобальный хук для терминала.

  7. #156
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Я ухитрился найти ссылку Гуглом: Глобальный хук для терминала.
    Во.
    То что надо.

    У SecureCRT другой способ - там NumLock отрабатывается, а потом прога переключает его обратно. Автор E11 вроде пробовал такой метод, но столкнулся с проблемами. Вобщем отправлю ему - пусть разбирается.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  8. #157
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    ---------- Post added at 11:22 ---------- Previous post was at 11:12 ----------

    Если каждое окно, в котором хочется отключить реакцию Windows на NumLock будет при получении фокуса устанавливать:
    Код:
    ghKeyboardHook = SetWindowsHookEx( WH_KEYBOARD_LL, KeyboardHook, ghInstance, 0);
    а при потере фокуса отключать такой глобальный хук:

    Код:
    LRESULT CALLBACK KeyboardHook( int nCode, WPARAM wp, LPARAM lp ) 
    {
    	static bool bVK_NUMLOCK_pressed = false;
       
    	KBDLLHOOKSTRUCT *pkh = (KBDLLHOOKSTRUCT *) lp;
    	dword wParam         = pkh->vkCode;
    	dword lParam         = 1;
    	dword lParamHi       = pkh->scanCode;
    	signed char cFlags   = pkh->flags;
     
    	if( cFlags & 1 )
    	{
    		lParamHi |= BIT_8;
    	}
    	if( cFlags < 0 )
    	{
    		lParamHi |= BIT_14;
    		lParamHi |= BIT_15;
    	}
    
    	if( nCode == HC_ACTION )
    	{
    		if( wParam == VK_NUMLOCK )
    		{
    			if( cFlags < 0 )
    			{
    				bVK_NUMLOCK_pressed = false;
    				lParamHi <<= 16;
    				lParam |= lParamHi;
    				PostMessage( hWnd, WM_KEYUP, wParam, lParam );
    			}
    			else
    			{
    				if( bVK_NUMLOCK_pressed ) { lParamHi |= BIT_14; } 
    				bVK_NUMLOCK_pressed = true;
    				lParamHi <<= 16;
    				lParam |= lParamHi;
    				PostMessage( hWnd, WM_KEYDOWN, wParam, lParam );
    			}
    			return 1;
    		}
    	}    
    	return CallNextHookEx( ghKeyboardHook, nCode, wParam, lParam ); 
    }
    то проблемы конкуренции глобальных хуков между собой не возникнет.

    ...

    Небольшая сложность есть только с тем, что сообщения о получении фокуса в новое окно и об утрате фокуса в старое окно приходят без гарантированной последовательности. Поэтому, при использовании общего кода хука несколькими окнами - они перед установкой хука должны записывать свой hWnd в глобальную статическую переменную hWnd, которую использует хук, но перед удалением хука эту переменную не трогать, т.к. там уже может быть hWnd другого окна, которое уже установило другой экземпляр этого же хука.
    Последний раз редактировалось Patron; 03.12.2012 в 14:18.

  9. #158
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Patron, тебе списиба от автора E11
    А ты по англицки шпрехаешь?
    А то может проще пригласить тебя в переписку напрямую, чтобы вы сами между собой могли объясняться?
    А то я в виндовсной гуйне ничего не смыслю - програмил или на delphi очень простые вещи или переносил свои изначально униховые проги без гуя
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  10. #159
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    чтобы вы сами между собой могли объясняться?
    Интересные многим темы лучше обсуждать публично. Помоги ему зарегистрироваться на этом форуме - здесь он всё и узнает.

  11. #160
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    283
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    ---------- Post added at 14:55 ---------- Previous post was at 14:52 ----------

    Да и виндовсных программеров тут наверное не так уж много
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

Страница 16 из 100 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя

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

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

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

Похожие темы

  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

Ваши права

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