DECLARE FUNCTION GetMouseCButton! () DECLARE FUNCTION GetMouseWheel% () ' +-------------------------------------+ ' | Exemple - exemple.bas | ' | par R. VerchŠre | ' | http://www.cybwarrior.com/ | ' | webmaster@cybwarrior.com | ' +-------------------------------------+ ' ' Exemple d'utilisation des routines de traitement de la souris ' ' Pour toutes question : http://www.cybwarrior.com/forum.php DECLARE SUB ShowMouse () DECLARE SUB HideMouse () DECLARE SUB MoveMouse (x%, y%) DECLARE FUNCTION InitMouse! () DECLARE FUNCTION GetMouseX! () DECLARE FUNCTION GetMouseY! () DECLARE FUNCTION GetMouseLButton! () DECLARE FUNCTION GetMouseRButton! () CONST TRUE = -1 CONST FALSE = 0 DIM SHARED SegAsm% DIM SHARED OffAsm% DIM Asm%(56) SegAsm% = VARSEG(Asm%(0)) OffAsm% = VARPTR(Asm%(0)) DEF SEG = SegAsm% FOR i% = LBOUND(Asm%, 1) TO UBOUND(Asm%, 1) READ Octet% POKE OffAsm% + i%, Octet% NEXT i% DEF SEG TestSouris = InitMouse SCREEN 12 CLS LOCATE 2 PRINT "Esc - Quitter" PRINT "S - Montrer le curseur de la souris" PRINT "H - Masquer le curseur de la souris" PRINT "M - D‚placer le curseur … une position al‚atoire" DO t$ = INKEY$ SELECT CASE UCASE$(t$) CASE "S" ShowMouse CASE "H" HideMouse CASE "M" MoveMouse RND * 640, RND * 480 END SELECT LOCATE 1 PRINT "X : "; GetMouseX; " Y : "; GetMouseY; " Bouton gauche : "; GetMouseLButton; " Bouton droit : "; GetMouseRButton PRINT "Bouton Central : "; GetMouseCButton; "Molette : "; GetMouseWheel% LOOP UNTIL t$ = CHR$(27) ' Langage machine pour la gestion de la souris DATA &H55,&H89,&HE5,&H8B,&H5E,&H0C,&H8B,&H07,&H50,&H8B DATA &H5E,&H0A,&H8B,&H07,&H50,&H8B,&H5E,&H08,&H8B,&H0F DATA &H8B,&H5E,&H06,&H8B,&H17,&H5B,&H58,&H1E,&H07,&HCD DATA &H33,&H53,&H8B,&H5E,&H0C,&H89,&H07,&H58,&H8B,&H5E DATA &H0A,&H89,&H07,&H8B,&H5E,&H08,&H89,&H0F,&H8B,&H5E DATA &H06,&H89,&H17,&H5D,&HCA,&H08,&H00 FUNCTION GetMouseCButton '+---------------------------------------------+ '| | '| Renvoi l'‚tat du bouton droit de la souris: | '| + TRUE si enfonc‚ | '| + FALSE si relach‚ | '| | '+---------------------------------------------+ DEF SEG = SegAsm% ax% = 3 CALL Absolute(ax%, bx%, cx%, dx%, OffAsm%) IF (bx% AND 4) <> 0 THEN GetMouseCButton = TRUE ELSE GetMouseCButton = FALSE DEF SEG END FUNCTION FUNCTION GetMouseLButton '+----------------------------------------------+ '| | '| Renvoi l'‚tat du bouton gauche de la souris: | '| + TRUE si enfonc‚ | '| + FALSE si relach‚ | '| | '+----------------------------------------------+ DEF SEG = SegAsm% ax% = 3 CALL Absolute(ax%, bx%, cx%, dx%, OffAsm%) IF (bx% AND 1) <> 0 THEN GetMouseLButton = TRUE ELSE GetMouseLButton = FALSE DEF SEG END FUNCTION FUNCTION GetMouseRButton '+---------------------------------------------+ '| | '| Renvoi l'‚tat du bouton droit de la souris: | '| + TRUE si enfonc‚ | '| + FALSE si relach‚ | '| | '+---------------------------------------------+ DEF SEG = SegAsm% ax% = 3 CALL Absolute(ax%, bx%, cx%, dx%, OffAsm%) IF (bx% AND 2) <> 0 THEN GetMouseRButton = TRUE ELSE GetMouseRButton = FALSE DEF SEG END FUNCTION FUNCTION GetMouseWheel% '+---------------------------------------------+ '| | '| Renvoi l'‚tat de la molette de la souris: | '+---------------------------------------------+ DEF SEG = SegAsm% ax% = &H30 cx% = 0 CALL Absolute(ax%, bx%, cx%, dx%, OffAsm%) DEF SEG GetMouseWheel = bx% END FUNCTION FUNCTION GetMouseX '+---------------------------------------+ '| | '| Renvoi les coordonn‚es X de la souris | '| | '+---------------------------------------+ DEF SEG = SegAsm% ax% = 3 CALL Absolute(ax%, bx%, cx%, dx%, OffAsm%) GetMouseX = cx% DEF SEG END FUNCTION FUNCTION GetMouseY '+---------------------------------------+ '| | '| Renvoi les coordonn‚es Y de la souris | '| | '+---------------------------------------+ DEF SEG = SegAsm% ax% = 3 CALL Absolute(ax%, bx%, cx%, dx%, OffAsm%) GetMouseY = dx% DEF SEG END FUNCTION SUB HideMouse '+--------------------------------+ '| | '| Masque le curseur de la souris | '| | '+--------------------------------+ DEF SEG = SegAsm% ax% = 2 CALL Absolute(ax%, bx%, cx%, dx%, OffAsm%) DEF SEG END SUB FUNCTION InitMouse '+---------------------------------------+ '| | '| Initialise la souris | '| + TRUE si une souris est d‚tect‚e | '| + FALSE si aucune souris d‚tect‚e | '| | '+---------------------------------------+ DEF SEG = SegAsm% ax% = 0 CALL Absolute(ax%, bx%, cx%, dx%, OffAsm%) IF ax% = 0 THEN InitMouse = FALSE ELSE InitMouse = TRUE DEF SEG END FUNCTION SUB MoveMouse (x%, y%) '+---------------------------------+ '| | '| D‚place le curseur de la souris | '| | '+---------------------------------+ DEF SEG = SegAsm% ax% = 4 cx% = x% dx% = y% CALL Absolute(ax%, bx%, cx%, dx%, OffAsm%) DEF SEG END SUB SUB ShowMouse '+---------------------------------+ '| | '| Affiche le curseur de la souris | '| | '+---------------------------------+ DEF SEG = SegAsm% ax% = 1 CALL Absolute(ax%, bx%, cx%, dx%, OffAsm%) DEF SEG END SUB