Работя върху проект в асемблиране 8086 на Windows машина и трябва да знам кой бутон на мишката е щракнат. Какви са прекъсванията за това? или как да открия това?
Благодаря
Работя върху проект в асемблиране 8086 на Windows машина и трябва да знам кой бутон на мишката е щракнат. Какви са прекъсванията за това? или как да открия това?
Благодаря
Ако създавате DOS програма, която работи под Windows, можете да използвате софтуерно прекъсване 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] и да сравните го с ID на съобщението, което искате да обработите.
На машина с "DOS" вижте Софтуерно прекъсване 0x33< /a>.
Командата AH = 0x03 връща натиснатия бутон на мишката в регистър CX (заедно с координатите на мишката и друга информация в други регистри).
Ако е налично, разбира се е много по-лесно да използвате Windows API за тази цел, както е посочено в отговора на matja.