Начитался я про трои, вирусы, черви, которые срабатывают на элементарное наведение указателя мыши на ярлык exe'шника и решил родить программу, которая выполняет отслеживание перемещения текстового указателя мыши. Вдобавок добавил в код (ну это уже наверное лишнее, но убрать то можно =) ) визуальное отображение, в правом нижнем углу экрана, горизонтальных и вертикальных ( X и Y ) координат перемещения указателя, и еще немного API. При нажатии левой кнопки мыши её координаты фиксируются в левом нижнем углу экрана (эт всё WinAPI). Исходник: Code: TITLE Программа регистрации движения мыши (mouse.asm) INCLUDE Irvine16.inc .data ESCkey = 1Bh GreetingMsg BYTE "Для выхода нажмите <Esc>",0dh,0ah,0 StatusLine BYTE "Левая кнопка: " BYTE "Положение мыши: ",0 blanks BYTE " ",0 Xcoordinate WORD 0 Ycoordinate WORD 0 Xclick WORD 0 Yclick WORD 0 .code main PROC mov ax,@data mov ds,ax call HideCursor mov dx,OFFSET GreetingMsg call WriteString call ShowMousePointer mov dh,24 mov dl,0 call GotoXY mov dx,OFFSET StatusLine call Writestring L1: call ShowMousePPosition call LeftButtonClick mov ah,11h int 16h jz L2 mov ah,10h int 16h cmp al,,ESCkey je quit L2: jmp L1 quit: call HideMousePointer call ShowCursor call ClrScr call WaitMsg exit main ENDP GetMousePosition PROC push ax mov ax,3 int 33h pop ax ret GetMousePosition ENDP HideCursor proc mov ah,3 int 10h or ch,30h mov ah,1 int 10h ret HideCursor ENDP ShowCursor PROC mov ah,3 int 10h mov ah,1 mov cx,0607h int 10h ret ShowCursor ENDP HideMousePointer PROC push ax mov ax,2 int 33h pop ax ret HideMousePointer ENDP ShowMousePointer PROC push ax mov ax,1 int 33h pop ax ret ShowMousePointer ENDP LeftButtonClick PROC pusha mov ax,5 mov bx,0 int 33h cmp cx,Xclick jne LBC1 cmp dx,Yclick je LBC_exit LBC1: mov Xclick,cx mov Yclick,dx mov dh, 24 mov dl,15 call GotoXY push dx mov dx,OFFSET blanks call WriteString pop dx call GotoXY mov ax,Xcoordinate call WriteDec mov dl,20 call GotoXY mov ax,Ycoordinate call WriteDec LBC_exit: popa ret LeftButtonClick ENDP SetMousePosition PROC mov ax,4 int 33h ret SetMousePosition ENDP ShowMousePosition PROC pusha call GetMousePosition cmp cx,Xcoordinate jne SMP1 cmp dx, Ycootdinate je SMP_exit SMP1: mov Xcoordinate,cx mov Ycoordinate,dx mov dh,24 mov dl,60 call GotoXY push dx mov dx,OFFSET blanks call WriteString pop dx call GotoXY mov ax,Xcoordinate call WriteDec mov dl,65 call GotoXY mov ax,Ycoordinate call WriteDec SMP_exit: popa ret ShowMousePosition ENDP END main Делал асм. вставки в Delphi - все фурычит =) p.s.: исходник карявить не стал, но и exe не выложил
Блин малоли... Может кому понравится, пригодится, для лабораторки, контрольной и т.д. и т.п. Это же не калькулятор...