elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  mouse_event C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: mouse_event C#  (Leído 3,035 veces)
Jeezy

Desconectado Desconectado

Mensajes: 66


Ver Perfil
mouse_event C#
« en: 4 Agosto 2018, 18:04 pm »

Hola, tengo una duda que no tengo muy clara y es la siguente:

En los mouse_event cuando introduces el codigo que va a clickear que es el siguiente. Por que el mouse_event solo funciona cuando el valor  numerico diferente a 0 esta en la primera sección, y cuando se intercambia no funciona ejemplo:

Código:
        [DllImport("user32", CharSet = CharSet.Ansi, EntryPoint = "mouse_event", ExactSpelling = true, SetLastError = true)]
        public static extern void __(int dwFlags , int dx, int dy, int cButtons, int dwExtraInfo);
el dwExtrainfo es el que representa el 2 al inicio
Código:
mouse_event(2,0,0,0,0);[
y no funciona de esta manera
Código:
mouse_event(0,2,0,0,0);

alguien me podria decir por que del 2 hacia adelante no funcionan los 0 , o como podria hacer para que funcionen.

gracias






En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: mouse_event C#
« Respuesta #1 en: 4 Agosto 2018, 19:52 pm »

Código:
        [DllImport("user32", CharSet = CharSet.Ansi, EntryPoint = "mouse_event", ExactSpelling = true, SetLastError = true)]
        public static extern void __(int dwFlags , int dx, int dy, int cButtons, int dwExtraInfo);
el dwExtrainfo es el que representa el 2 al inicio
Código:
mouse_event(2,0,0,0,0);[

No es así, el parámetro dwExtraInfo es el último, es decir, el quinto parámetro. El primer parámetro es dwFlags, el cual representa el evento a simular, y a dicho parámetro es al que le estás enviando el valor numérico "2", o dicho de otra forma: MOUSEEVENTF_LEFTDOWN (0x0002), es decir, simular la pulsación del botón izquierdo del mouse.

alguien me podria decir por que del 2 hacia adelante no funcionan los 0 , o como podria hacer para que funcionen.

No se entiende muy bien lo que estás preguntando, pero básicamente todos los problemas que tengas son causa del desconocimiento de la funcionalidad de los parámetros de esa función y por ende de cuales son los valores que debes pasarle a cada uno, algo que deberías poder solucionar estudiando la documentación oficial de dicha función...




Dicho esto, ¿existe algún motivo razonable por el cual quieras recurrir a la API de Windows para realizar ese tipo de operaciones con el mouse?, la función mouse_event está considerada obsoleta desde hace muchos años, además su utilización resulta muy tosca a la hora de asignar coordenadas absolutas ya que es necesario llevar a cabo cierto cálculo divisorio en relación con el tamaño de la pantalla activa para crear los valores "X" e "Y" correctos...

Cita de: MSDN
If MOUSEEVENTF_ABSOLUTE value is specified, dx and dy contain normalized absolute coordinates between 0 and 65,535. The event procedure maps these coordinates onto the display surface. Coordinate (0,0) maps onto the upper-left corner of the display surface, (65535,65535) maps onto the lower-right corner.

Por dichos motivos, si tu única intención es colocar el puntero del mouse en una ubicación determinada entonces es más que suficiente, simple y efectivo con utilizar la propiedad System.Windows.Forms.Cursor.Position...


O en su defecto la función nativa SetCursorPos...


Si por lo contrario tu intención es simular eventos de pulsación de botones del mouse, entonces deberías usar la API nativa de RAWINPUT junto a la función nativa SendInput...


El desarrollo de un wrapper decente de RAWINPUT requiere mucho P/Invoking, son bastantes definiciones de miembros/estructuras nativos, así que no puedo mostrar un ejemplo corto por falta de espacio, pero ni falta que hace ya que puedes encontrar ejemplos completos ya hechos en C#, incluyendo librerías de terceros como por ejemplo Windows Input Simulator que bien puedes utilizar para simular eventos del mouse o puedes extraer las definiciones necesarias de su código fuente...


Saludos.


« Última modificación: 4 Agosto 2018, 20:19 pm por Eleкtro » En línea



Jeezy

Desconectado Desconectado

Mensajes: 66


Ver Perfil
Re: mouse_event C#
« Respuesta #2 en: 4 Agosto 2018, 20:39 pm »

A lo que me refiero es que el mouse_event funciona si esta asi
Código:
mouse_event(2,0,0,0,0)
Asi funcionaria correctamente
pero si tu ese dos lo cambias de posicion como en este ejemplo
Código:
mouse_event(0,2,0,0,0)
El Autoclicker ya dejaria de clickear es a lo que me refiero por que solo funciona el primer valor como en el ejemplo 1 y por que deja de funcionar al cambiar el orden del 2.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: mouse_event C#
« Respuesta #3 en: 4 Agosto 2018, 20:53 pm »

Citar
Código:
mouse_event(2,0,0,0,0)

Te lo acabo de explicar, el primer parámetro de la función mouse_event es dwFlags, este parámetro determina el evento a simular, el valor "2" que le pasas al parámetro dwFlags indica que se debe simular el evento de pulsación del botón izquierdo del mouse (MOUSEEVENTF_LEFTDOWN = 0x0002), lógicamente si cambias el "2" por un "0" estás dejando de especificar que se simule la pulsación del botón izquierdo del mouse... de hecho no estás indicando que la función mouse_event haga nada en concreto puesto que el parámetro dwFlags no acepta ningún valor igual a "0".



Aquí abajo es completamente indiferente el valor que le envíes al parámetro dx (un "2" en este caso) puesto que le estás envíando "0" al parámetro dwFlags...
Citar
Código:
mouse_event(0,2,0,0,0)
...la función hará literalmente nada.

Saludos.
« Última modificación: 4 Agosto 2018, 21:04 pm por Eleкtro » En línea



Jeezy

Desconectado Desconectado

Mensajes: 66


Ver Perfil
Re: mouse_event C#
« Respuesta #4 en: 5 Agosto 2018, 01:15 am »

Ah yaya  te entendí muchas gracias me resolviste la duda
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mouse_Event código
Programación Visual Basic
edu,92 2 1,886 Último mensaje 17 Mayo 2014, 20:17 pm
por Kyoukai
VB.NET mouse_event move error en destino
.NET (C#, VB.NET, ASP)
kuhi 2 3,293 Último mensaje 21 Mayo 2018, 17:16 pm
por **Aincrad**
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines