• Lunes 1 de Julio de 2024, 06:13

Autor Tema:  Codigo para mouse C++  (Leído 2133 veces)

leo_ydl

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Codigo para mouse C++
« en: Martes 21 de Octubre de 2008, 06:04 »
0
Buenas, buenas, :good:  estoy haciendo un proyecto y actualmente intentando aplicar el mouse en el mismo.
He podido encontrar un código pero el detalle es que no me gustaria conocer (o mejor dicho entender) como funciona, ya que muchas cosas no se que hacen. Aqui va el codigo que encontre  :comp: .

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>

int MirarPuntero(void);
int MostrarPuntero(void);
int BotonPulsado(void);
int CorHTexto(void);
int CorVTexto(void);

void main(void)
   {
   if(!MirarPuntero())
      {
      clrscr();
      printf("ERROR... MOUSE NO DETECTADOnn");
      exit(1);
      }
   clrscr();
   _setcursortype(_NOCURSOR);
   gotoxy(20,1);printf("PROGRAMACION DEL MOUSE");
   MostrarPuntero();
   do
      {
      gotoxy(3,3);printf("Fila:   : %2d",CorVTexto());
      gotoxy(3,4);printf("Columna : %2d",CorHTexto());
      switch(BotonPulsado())
         {
         case 0:
            gotoxy(32,11); printf("NINGUN BOTON PULSADO   ");
            break;
         case 1:
            {
            gotoxy(32,11); printf("BOTON IZQUIERDO PULSADO   ");
            sound(1000); delay(50); nosound();
            break;
            }
         case 2:
            {
            gotoxy(32,11); printf("BOTON DERECHO PULSADO   ");
            sound(800); delay(50); nosound();
            break;
            }
         }
      }
   while (!kbhit());

   _setcursortype(_NORMALCURSOR);

   }                           /* CIERRE DEL PROGRAMA */

int MirarPuntero(void)
   {
   asm xor ax, ax
   asm int 33h
   asm cmp ax, -1
   asm je  Existe_Raton
   return 0;
   Existe_Raton:
   return 1;
   }

int MostrarPuntero(void)
   {
   asm mov ax, 01h
   asm int 33h
   return 1;
   }

int BotonPulsado()
   {
   asm mov ax, 03h
   asm int 33h
   return _BX;
   }

int CorHTexto(void)
   {
   asm mov ax, 03h
   asm int 33h
   return (_CX/8)+1;
   }

int CorVTexto(void)
   {
   asm mov ax, 03h
   asm int 33h
   return (_DX/8)+1;
   }

La parte que no entiendo son las funciones; por lo menos las partes de asm y la linea Existe Raton ademas de ciertos return. Por lo menos e podido encontrar lo siguiente:

// Se debe inicializar el mouse con la INT 0X33, Y PEDIR EL SERVICIO QUE NECESITES HE AQUI LOS SERVICIOS:

// SERVICIO DESCRIPCION
// 00h INICIALIZA EL DRIVER DEL RATON
// 01h MUESTRA EL RATON
// 02h ESCONDE EL CURSOR DEL RATON
// 03h OBTIENE LA POSICION Y EDO DEL RATON
// 04h AJUSTA LA POSICION DEL RATON
// 07h RESTRINGE EL MOVIMIENTO DEL MOUSE HORIZONTAL
// 08h RESTRINGE EL MOVIMIENTO DEL MOUSE VERTICAL

Por lo demas espero me puedan ayudar y muchas gracias de antemano  :beer:

PD: Tambien estoy adjuntando el codigo por si cualquiera desea bajarlo y usarlo.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Codigo para mouse C++
« Respuesta #1 en: Martes 21 de Octubre de 2008, 06:40 »
0
Esto es de la época del abuelo Patxi, quiero decir, MS-DOS. Esto no te funciona en XP ni pa atrás (a menos que uses un emulador o algo por el estilo). En los S.O. modernos el mouse lo controla el mismo S.O., tú sólo puedes hacer peticiones sobre su posición, etc... O bien escribir un driver de mouse.