Мне нужно программно свернуть и развернуть полноэкранное 16-битное приложение.К сожалению, DosBox не подходит, так как это приложение взаимодействует с некоторыми периферийными устройствами, не поддерживаемыми DosBox.
Мне удалось написать код (тяжелый для Win32 API), который может установить фокус, отправить клавиши alt + enter исвернуть / развернуть.
Все будет работать, однако некоторые пользователи выяснили, что Alt + Enter может выйти из полноэкранного режима, и начали злоупотреблять этим.
Я могу отключить Alt + Enter, используя настройкив PIF, но это нарушает мой подход к программной отправке этих ключей.
Есть ли лучшая альтернатива для получения NTVDM для программного переключения полноэкранного режима, чем отправка Alt + Enter?
Я использовал Spy ++ и обнаружил, что для достижения полноэкранного режима NTVDM изменял системное разрешение на 640 x 480.
Я пытался вызывать API ChangeDisplaySettings для переключения разрешений по мере необходимости, но когда я установил640 x 480 NTVDM по-прежнему работает как оконное приложение.
Я рассматриваю вопрос настройки низкоуровневой клавиатуры (http://msdn.microsoft.com/en-us/library/ms644985(v=vs.85).aspx) для фильтрации Alt + Enter. Я мог бы отключить эту ловушку на короткий промежуток времени, который требуется моейприложение, чтобы отправить его. Это звучит как опасный хак, который может иметь много побочных эффектов. Я также не уверен, что это будет работать, так как NTVDM, похоже, не использует цикл обработки сообщений для обработки ввода с клавиатуры. API SendMessage не делаетрезультатов не получилось, и Alt + Enter пришлось отправить с помощью API keybd_event. Есть мысли?