2010-03-10 2 views

ответ

1

На машине "DOS", смотрите в Software Interrupt 0x33.
Команда AH = 0x03 возвращает кнопку мыши, нажатую в регистре CX (вместе с координатами мыши и другой информацией, в других регистрах).

Если доступно, для этой цели, конечно, намного проще использовать Windows API, как указано в ответе Маджи.

5

Если вы делаете программу 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] и сравните его с идентификатором сообщения, который вы хотите обработать.

+0

Nice, который работает блестящим! благодаря –

Смежные вопросы