Autor
|
Tema: Pregunta sobre una aplicación de c# (Leído 17,444 veces)
|
andrecid
Desconectado
Mensajes: 126
Haz lo que quieras, por que nadie te puede obligar
|
Hola estoy creando un programa llamado Autoclick. La verdad me costo mucho encontrar los codigos y ahora tengo unas cuantas preguntas: ¿Cómo puedo hacerlo más rápido? La verdad es que me funcionan perfectamente pero no se como hacerlo más rápido y por más que busco no encuentro nada ¿Cómo puedo hacerlo lo menos detectable posible? La cosa es que si activo en autoclick ay veces que me echan por que me lo detectan. ¿Como puedo hacer que el mouse no se me valla al sitio donde tengo las coordenadas? La verdad esto no me gusta cuando le activo el mouse se va a las coordenadas y empieza a clickar no ay forma de que no se valla pero si que clike? int x = Convert.ToInt16(textBox1.Text); int y = Convert.ToInt16(textBox2.Text);
// Coordenadas del cursor Cursor.Position = new Point(x, y);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0,0 ,0); mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); Este no es todo el código pero es lo más importante según las personas. Espero sus respuestas grax
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
La verdad me costo mucho encontrar los codigos y ahora tengo unas cuantas preguntas: Copiando códigos ni vas a aprender ni mucho menos vas a ser capaz de desarrollar una herramienta rápida/eficaz, deberías cojer un libro/tutorial, leer y practicar hasta que sepas lo más básico. · C# Programming Guide - MSDN· C# Tutorials - MSDN¿Como puedo hacer que el mouse no se me valla al sitio donde tengo las coordenadas?
cuando le activo el mouse se va a las coordenadas y empieza a clickar no ay forma de que no se valla pero si que clike? Fíjate en esta parte del código: // Coordenadas del cursor Cursor.Position
Las propiedades ' Cursor.Position.X' y ' Cursor.Position.Y' contienen las coordenadas actuales de tu mouse, pásale esas coordenadas a los parámetros ' dx' y ' dy' de la función ' mouse_event'. mouse_event(MOUSEEVENTF_LEFTDOWN, Cursor.Position.X, Cursor.Position.Y, Nothing, Nothing); mouse_event(MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, Nothing, Nothing);
(creo que eso debería solucionar el problema) Saludos!
|
|
« Última modificación: 11 Agosto 2014, 19:45 pm por Eleкtro »
|
En línea
|
|
|
|
andrecid
Desconectado
Mensajes: 126
Haz lo que quieras, por que nadie te puede obligar
|
Gracias no pienses mal cuando dije copiar y pegar Cuando dije eso me refiero a copiar i pegar en blog de notas y estudiar los codigos haber que puedo sacar una vez más gracias. Seria así? mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 1436, 7, 0);
|
|
« Última modificación: 11 Agosto 2014, 19:48 pm por andrecid »
|
En línea
|
|
|
|
andrecid
Desconectado
Mensajes: 126
Haz lo que quieras, por que nadie te puede obligar
|
.
|
|
« Última modificación: 11 Agosto 2014, 22:08 pm por andrecid »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
No amigo , aun así se me va mueve el cursor mira te paso el codigo entero. mouse_event(MOUSEEVENTF_LEFTDOWN, 1290, 317, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 1290, 317, 0, 0); 1) Imagino que esas coordenadas las asignaste simplemente por probar, pero por si no es así lo comentaré de todas formas: Le estás pasando unas coordenadas fijas, no las coordenadas actuales de tu mouse como te indiqué. 2) Si leyeras la documentación del método, la cual te he mostrado 3 o 4 veces ya, verías que los parámetros ' dw' y ' dy' actuan como coordenadas RELATIVAS (es decir, moverse a un offset) a menos que especifiques el flag ' MOUSEEVENTF_ABSOLUTE' en el primer parámetro para que actuen como coordenadas absolutas. dx & dy: The mouse's absolute position along the x-axis or its amount of motion since the last mouse event was generated, depending on the setting of MOUSEEVENTF_ABSOLUTE. Absolute data is specified as the mouse's actual x-coordinate; relative data is specified as the number of mickeys moved. A mickey is the amount that a mouse has to move for it to report that it has moved. dwflags: · MOUSEEVENTF_ABSOLUTE
The dx and dy parameters contain normalized absolute coordinates. If not set, those parameters contain relative data: the change in position since the last reported position. This flag can be set, or not set, regardless of what kind of mouse or mouse-like device, if any, is connected to the system. For further information about relative mouse motion, see the following Remarks section. Así que debes combinar los flags: mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, , , ,)
EDITO:También dice: 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. Así pues, además de combinar los flags debes hacer una operación aritmética para ajustar las coordenadas: VB.NET Dim PosX As Integer = ((Cursor.Position.X * 65535I) / Screen.PrimaryScreen.Bounds.Width) Dim PosY As Integer = ((Cursor.Position.Y * 65535I) / Screen.PrimaryScreen.Bounds.Height) mouse_event(MouseEventFlags.ABSOLUTE Or MouseEventFlags.MOVE Or MouseEventFlags.LEFTDOWN Or MouseEventFlags.LEFTUP, PosX, PosY, Nothing, Nothing)
C#: int PosX = ((Cursor.Position.X * 65535) / Screen.PrimaryScreen.Bounds.Width); int PosY = ((Cursor.Position.Y * 65535) / Screen.PrimaryScreen.Bounds.Height); mouse_event(MouseEventFlags.ABSOLUTE | MouseEventFlags.MOVE | MouseEventFlags.LEFTDOWN | MouseEventFlags.LEFTUP, PosX, PosY, null, null); //======================================================= //Service provided by Telerik (www.telerik.com) //Conversion powered by NRefactory. //Twitter: @telerik //Facebook: facebook.com/telerik //=======================================================
|
|
« Última modificación: 11 Agosto 2014, 20:31 pm por Eleкtro »
|
En línea
|
|
|
|
andrecid
Desconectado
Mensajes: 126
Haz lo que quieras, por que nadie te puede obligar
|
Pero yo quiero coordenadas, no quiero que al activar se ponga a dar click el ratón, lo que quiero es que empieza a dar click en un área determinada sin necesidad de que el ratón se mueva.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Pero yo quiero coordenadas, no quiero que al activar se ponga a dar click el ratón, lo que quiero es que empieza a dar click en un área determinada sin necesidad de que el ratón se mueva.
Lo siento, eso no es lo que me pareció que dijiste al principio: ¿Como puedo hacer que el mouse no se me valla al sitio donde tengo las coordenadas? La verdad esto no me gusta cuando le activo el mouse se va a las coordenadas y empieza a clickar no ay forma de que no se valla pero si que clike? De todas formas lee la edición de mi último comentario arriba, solo debes modificar las propiedades de 'cursor.position.x' y 'cursor.position.y' por las coordenadas que quieras. Saludos
|
|
« Última modificación: 11 Agosto 2014, 20:31 pm por Eleкtro »
|
En línea
|
|
|
|
andrecid
Desconectado
Mensajes: 126
Haz lo que quieras, por que nadie te puede obligar
|
¿Dónde tengo que declarar los siguientes codigos? mouse_event(MouseEventFlags.ABSOLUTE | MouseEventFlags.MOVE | MouseEventFlags.LEFTDOWN | MouseEventFlags.LEFTUP, PosX, PosY, null, null); por que cuando los pongo me sale un error de que no están en el contexto actual Arriba tiene usted mi código ¿Qué tengo mal en el? int PosX = ((Cursor.Position.X * 65535) / Screen.PrimaryScreen.Bounds.Width); int PosY = ((Cursor.Position.Y * 65535) / Screen.PrimaryScreen.Bounds.Height); esa parte si me deja.
|
|
« Última modificación: 11 Agosto 2014, 20:39 pm por andrecid »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
mouse_event(MouseEventFlags.ABSOLUTE | MouseEventFlags.MOVE | MouseEventFlags.LEFTDOWN | MouseEventFlags.LEFTUP, PosX, PosY, null, null); por que cuando los pongo me sale un error de que no están en el contexto actual Porque en lugar de Constantes yo utilicé una Enum y la llamé 'MouseEventFlags', tu tienes las Constantes definidas, utilizalas: MOUSEEVENTF_ABSOLUTE MOUSEEVENTF_MOVE MOUSEEVENTF_LEFTDOWN MOUSEEVENTF_LEFTUP Si no tienes alguna constante definidia, ya te las mostré en la documentación con los respectivos valores que debes asignarles: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646260%28v=vs.85%29.aspx+ · enum (C# Reference)· const (C# Reference)Si no eres capaz de diferenciar y corregir una minucia como la que te ha ocasioando este problema entonces sin ánimo de ofender te digo que no deberías intentar desarrollar programas de "autoclicks" ni manejarte con la Windows API, debes seguir estudiando y aprender lo básico, no lo quieras poder hacer todo en 1 solo día. Saludos!
|
|
« Última modificación: 11 Agosto 2014, 21:00 pm por Eleкtro »
|
En línea
|
|
|
|
andrecid
Desconectado
Mensajes: 126
Haz lo que quieras, por que nadie te puede obligar
|
mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0); Ya he conseguido que fuincionara pero aun así me dice que no se existe en el contecto actual: MouseEventFlags MousMouseEvent MouseEventFlags PosX, PosY Lo otro ya me deja.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Aplicacion sobre aplicacion en pantalla completa xD
Programación Visual Basic
|
spaceboy90
|
1
|
2,643
|
28 Enero 2007, 23:10 pm
por Red Mx
|
|
|
[pregunta] Sobre una aplicación que quiero hacer en vb6
« 1 2 »
Programación Visual Basic
|
Senior++
|
10
|
4,068
|
14 Julio 2011, 20:38 pm
por Senior++
|
|
|
Pregunta: Como funciona una aplicacion que genera otra aplicacion?
Programación C/C++
|
inGnio
|
2
|
3,417
|
18 Octubre 2012, 04:48 am
por x64core
|
|
|
(PREGUNTA) Preparando aplicación SETUP
Scripting
|
rhad26
|
0
|
1,450
|
22 Abril 2014, 16:30 pm
por rhad26
|
|
|
[Pregunta]: ¿Posible hueco de seguridad en una aplicación web?
PHP
|
Leguim
|
2
|
1,857
|
18 Septiembre 2019, 16:15 pm
por MinusFour
|
|