8086汇编右键单击中断

Cia*_*rán 1 mouse assembly interrupt click x86-16

我正在Windows机器上的8086程序集中处理一个项目,我需要知道单击了哪个鼠标按钮.这有什么中断?或者我该如何找到这个?

谢谢

mat*_*tja 5

如果你正在制作一个在windows下运行的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应用程序,则可以通过检查传递给您注册的WndProc的标准鼠标按钮消息(WM_LBUTTONDOWN/UP,WM_BBUTTONDOWN/UP,WM_MBUTTONDOWN/UP)来测试按钮按下,该主窗口由您的程序创建.

WndProc的函数声明是"LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);",消息类型在uMsg中传递,所以你在[esp + 12]检查DWORD并比较它与您要处理的消息ID.