nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 18 Apr 2024 00:57



Reply to topic  [ 18 posts ]  Go to page Previous  1, 2
Интерфейс DOS-Windows 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
... программа, ради которой я стараюсь, принципиально написана без поддержки мыши. Видимо,
придется написать под неё маленький резидент, который запустит обслуживание мыши. 8)

В общем-то у меня в итоге всё получилось именно так, как я и хотел: :kruto:
Attachment:
DOSapp.gif
DOSapp.gif [ 57.28 KiB | Viewed 2900 times ]

Для эмулятора "Специалист_МХ" от Шевцова я прикручивал все эти фишки и удобства... :wink:

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

Поэтому сначала запускается "стартер" - программа SPMX42PR.COM - она инициализирует мышь, берет
на себя обслуживание процедуры прерывания мыши, после чего запускает сам SPMX42PR.EXE, и клики
мыши по его экрану преобразует в команды клавиатуры через INT 16H.
Программа SPMX42PR.COM также передаёт сообщение "ABCD" в Clipboard Windows для Windows-части
проекта. Поймав через Clipboard сообщение "ABCD" Windows-приложение выдаёт нажатие [Alt]+[Enter],
которое переключает оконный и полноэкранный вид SPMX42PR.EXE.

Ну и поскольку я давно хотел эмулятор "Специалиста_МХ" с мышью, ниже на скриншоте показано, куда
кликать левой кнопкой, и что от этого будет... :lol:

 имитация кнопок мышью
Attachment:
spmx580.gif
spmx580.gif [ 21.65 KiB | Viewed 2900 times ]

Из негативных вещей: похоже, что это всё работает только под Windows 98. По той простой причине,
что под Windows ХР сам эмулятор SPMX42PR.EXE работает только в полноэкранном виде.
Нажатие [Alt]+[Enter] сворачивает его в значок, и в оконном режиме он не работает никак. :osad:
Поэтому всё слежение за Clipboard просто теряет смысл... :-? Но в полноэкранном виде связка со стартером
SPMX42PR.COM + SPMX42PR.EXE работает великолепно!

Выкладываю архив с исходником SPMX42PR.COM, вдруг кто захочет придать "мышиности" всему RAMFOS!
Там по коду это сделать легко, и оставлены закомментированными средства для этого.
Attachment:
SP_DOSst.zip [190.13 KiB]
Downloaded 311 times

В архиве:
DOSStart.exe - запускает под Windows SPMX42PR.COM + SPMX42PR.EXE и следит за Clipboard и мышью.
DOShook.dll - hook на сообщения мыши.
TO_EARTH.ALL - две медленные игрушки, в которые можно поиграть, кликами мыши. 8)
Остальное - понятно из этого текста.

_________________
iLavr


Last edited by Lavr on 22 Mar 2024 17:31, edited 1 time in total.



28 Dec 2019 10:16
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
Из негативных вещей: похоже, что это всё работает только под Windows 98. По той простой причине,
что под Windows ХР сам эмулятор SPMX42PR.EXE работает только в полноэкранном виде.
Нажатие [Alt]+[Enter] сворачивает его в значок, и в оконном режиме он не работает никак. :osad:

Сегодня из интересу попробовал как это работает под Windows 7 - ситуация полностью противоположна. :lol:
Windows 7 не умеет запустить DOS-приложение в полноэкранном виде, на этом всё и заканчивается,
ибо в оконный режим она его тоже не сворачивает.

Погуглил, что пишут в "этих наших Интернетах": пишут, что в видео-драйверах Windows 7 режимы эмуляции DOS
просто исключены, ибо прошло много времени, чтобы тащить за собой "старьё DOS".
А желающие копошится с ним должны поставить видео-драйверы от Windows ХР .
Ну это уж слишком кардинальная мера, на мой взгляд. :-?

_________________
iLavr


13 Jan 2020 16:49
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Lavr wrote:
... программа, ради которой я стараюсь, принципиально написана без поддержки мыши.

Мы вот тут обсуждали поддержку мыши в программах, где её принципиально нет, и я упомянул, что:
Lavr wrote:
... под ДОС существовал хороший драйвер мыши для программ без оной - он превращал движения
и клики мыши в управляющие коды клавиатуры.

В этом драйвере, я и подсмотрел, как этот трюк с клавишами делается в принципе.
Хотя, вначале не это было в нём главным: драйвер делал курсор текстового режима графическим,
что было гораздо приятней квадратика... :lol:
Но потом оказалось, что и подстановка клавиш в ряде случаев очень удобная фича! :kruto:

Для заинтересованных коллег выкладываю драйвер в оригинале - as is:
Attachment:
MOUSEMU.zip [24.1 KiB]
Downloaded 223 times

Ассемблерный листиг - мой, но, думаю, за давностью времён автор на меня не обидится... :wink:

Расковырять пришлось по той причине, что, несмотря на то, что в коде есть взаимодействие
с Вендой, видимо, версии 3.1(3.11), которое должно устранить некорректную работу драйвера
в "окне ДОС", под Вендой 98 эта фича не работала, и на экране появлялся неприятный "крест"
из четырёх символов вместо курсора.
Вот тогда и возникла мысль, декомпилировать до исходника и добавить взаимодействие с Вендой
через VXD
, но это оказалось слишком громоздким решением... :osad:

_________________
iLavr


06 Jan 2021 13:35
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 18 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users and 23 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.