Я работаю над проектом в сборке 8086 на машине Windows, и мне нужно знать, какая кнопка мыши была нажата. Что это за прерывания? или как мне это узнать?8086 сборка щелчок правой кнопкой мыши
Благодаря
Я работаю над проектом в сборке 8086 на машине Windows, и мне нужно знать, какая кнопка мыши была нажата. Что это за прерывания? или как мне это узнать?8086 сборка щелчок правой кнопкой мыши
Благодаря
На машине "DOS", смотрите в Software Interrupt 0x33.
Команда AH = 0x03 возвращает кнопку мыши, нажатую в регистре CX (вместе с координатами мыши и другой информацией, в других регистрах).
Если доступно, для этой цели, конечно, намного проще использовать Windows API, как указано в ответе Маджи.
Если вы делаете программу DOS, которая работает под окнами, вы можете использовать программное обеспечение прерывания 0x33, функция 3, которая возвращает состояние кнопки в регистре BL:
mov ax,0x3 int 0x33 test bl,1 jnz left_button_pressed test bl,2 jnz right_button_pressed
Подробнее здесь http://www.ctyme.com/intr/rb-5959.htm
Если вы создаете собственное приложение Windows, вы можете протестировать нажатия кнопок, проверив стандартные сообщения кнопки мыши (WM_LBUTTONDOWN/UP, WM_RBUTTONDOWN/UP, WM_MBUTTONDOWN/UP), переданные вашему зарегистрированному WndProc для главного окна, созданного вашей программы.
Объявление функции для WndProc является "LRESULT CALLBACK WindowProc (HWND HWND, UINT uMsg, WPARAM WPARAM, LPARAM LPARAM);", тип сообщения передается в uMsg, так что вы хотите проверить DWORD на [ESP + 12] и сравните его с идентификатором сообщения, который вы хотите обработать.
Nice, который работает блестящим! благодаря –