Autor
|
Tema: ¿Como le pongo a un autoclick una velocidad de picosegundos? (Leído 7,902 veces)
|
milenio204
Desconectado
Mensajes: 11
|
Teniendo este código : Public Class Form1 Private Declare Sub mouse_event Lib "user32" (ByVal dwflags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cbuttons As Long, ByVal dwExtraInfo As Long) Private Const mouseclickup = 4 Private Const mouseclickdown = 2 Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer
'En el Timer1 ponemos: Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Windows.Forms.Cursor.Position = New Point(Windows.Forms.Cursor.Position.X, Windows.Forms.Cursor.Position.Y) Timer1.Interval = NumericUpDown1.Value Label1.Text = Windows.Forms.Cursor.Position.X Label2.Text = Windows.Forms.Cursor.Position.Y Windows.Forms.Cursor.Position = New Point(TextBox1.Text, TextBox2.Text) mouse_event(mouseclickdown, 0, 0, 0, 0) mouse_event(mouseclickup, 0, 0, 0, 0) Windows.Forms.Cursor.Position = New Point(Label1.Text, Label2.Text) End Sub
'En el Timer2 ponemos: Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Dim hotkey As Boolean hotkey = GetAsyncKeyState(Keys.F9) If hotkey = True Then timer1.start() Dim hotkey1 As Boolean hotkey1 = GetAsyncKeyState(Keys.F10) If hotkey1 = True Then Timer1.Stop() End Sub
'En el Timer3 ponemos: Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick Dim Posicion As Boolean Posicion = GetAsyncKeyState(Keys.F7) If Posicion = True Then TextBox1.Text = MousePosition.X : TextBox2.Text = MousePosition.Y End If If Posicion = False Then End if End Sub End Class
En este código para transformarlo en picosegundos es poniendo este codigo (segun me han dicho) : Imports System.Timers Dim nPicoSeg As Integer = 5 Dim tim1 As Timer = New Timer(nPicoSeg * 10 ^ (-9))
El problema de todo esto es que no sé en que lugar del codigo se coloca . (Tengo un pc en terahercios)
|
|
« Última modificación: 27 Enero 2014, 15:31 pm por Eleкtro »
|
En línea
|
|
|
|
engel lex
|
usa etquetas GeSHi para que el codigo se vea bien, están arriba de los emoticonos a la derecha...
por otro lado... 1seg = 1.000 miliSec = 1.000.000 microSeg = 1.000.000.000 picoSeg ya microsegundos es difícil de manejar porque son poco precisos debido a los procesos del SO, dudo que el SO te devuelva pico, ya que literalmente con un procesador de 2Ghz seria 1 de cada 2 procesos y la comprobación de si el contador terminó, si hubo ingreso de datos (teclado, mouse, red, etc), generación de eventos, renderizacion de pantalla, otros programas en el SO, etc... debe estar por el orden de las miles de operaciones seguidas cada vez, a demás tu le ingresas al pc clicks en orden de microsegundos (millones por segundo) y se pega el pc o el programa...
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
milenio204
Desconectado
Mensajes: 11
|
En ese caso le pondré milisegundos pero dime una cosa . ¿En que parte del código lo pongo? , ¿Cuál sería el código en milisegundo?
|
|
|
En línea
|
|
|
|
engel lex
|
para milisegundos en la cabecera colocas el api de getTickCount (te lo explicaré para vb6 como lo conozco XD corrigelo tu para .net porque no estoy seguro) Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
la cosa es que esa funcion te devuelve un tiempo en milisegundos... tu vas a hacer una espera con eso y seria un Private Sub esperar(espera as long) Dim inicio as long Dim fin as long inicio = GetTickCount() fin = inicio + espera 'espera es el tiempo del contador en milisec While fin > GetTickCount DoEvents Wend end sub
el lo que hará es que tu lo llamas con una cantidad de tiempo en milisegundos... y el literalmente dejará el programa "pegado" en ese ciclo ese tiempo...
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
milenio204
Desconectado
Mensajes: 11
|
Compañero ,todo eso donde lo pongo . ¿En Form1 , timer1 ?
|
|
|
En línea
|
|
|
|
engel lex
|
Si vas a a programar algo por lo menos aprende lo minimo del lenguaje -.- es una funcion independiente
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
milenio204
Desconectado
Mensajes: 11
|
Estoy empezando y esto no lo manejo lo suficiente bien ¿Sabrias decirmelo?
|
|
|
En línea
|
|
|
|
engel lex
|
Es una funcion independiente va afuera... no va dentro de nadie
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
milenio204
Desconectado
Mensajes: 11
|
Ok , yo al poner ese código me sale un error que dice : Error 1 La instrucción no es válida en un espacio de nombres. Y me subraya Private Sub esperar(ByVal espera As Long) El codigo quedaria así : Public Class Form1 Private Declare Sub mouse_event Lib "user32" (ByVal dwflags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cbuttons As Long, ByVal dwExtraInfo As Long) Private Const mouseclickup = 4 Private Const mouseclickdown = 2 Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Timer1.Start() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Timer1.Stop() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Windows.Forms.Cursor.Position = New Point(TextBox1.Text, TextBox2.Text) mouse_event(mouseclickdown, 3, 7, 1, 2) mouse_event(mouseclickup, 2, 5, 9, 3) End Sub Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Dim hotkey As Boolean hotkey = GetAsyncKeyState(Keys.F3) If hotkey = True Then Timer1.Start() Dim hotkey1 As Boolean hotkey1 = GetAsyncKeyState(Keys.F4) If hotkey1 = True Then Timer1.Stop() End Sub Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick, Timer4.Tick Label1.Text = Cursor.Position.X Label2.Text = Cursor.Position.Y End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged Timer1.Interval = (1) End Sub Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged Timer1.Interval = NumericUpDown1.Value End Sub Private Sub NumericUpDown2_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown2.ValueChanged Timer1.Interval = NumericUpDown2.Value End Sub End Class Private Sub esperar(ByVal espera As Long) Dim inicio As Long Dim fin As Long inicio = GetTickCount() fin = inicio + espera 'espera es el tiempo del contador en milisec While fin > GetTickCount DoEvents() End While End Sub
|
|
« Última modificación: 27 Enero 2014, 15:31 pm por Eleкtro »
|
En línea
|
|
|
|
TomaSs
Desconectado
Mensajes: 101
|
Se ve perfectamente que no entiendes para nada en lenguaje, ya que no sabes donde se coloca nada, como donde colocar la importación de librerías, la declaración de las clases, la declaración de variables, etc. Así es que lo que te recomendaría, si necesitas un autoclick, que te descargues uno hecho ya (el ejecutable) y lo uses, y si lo que quieres es aprender el lenguaje, creo que esto no es un buen comienzo, sino que empieces por aprender las bases del lenguaje en si. Un saludo!
Por cierto, con respecto a lo último que preguntas, como puedes ver no has colocado el método esperar dentro de ninguna clase, ya que justamente una linea antes de la declaración de ese método estás cerrando tu clase Form1 (con End Class), por lo que ese método tendrás que colocarlo justo antes de "End Class". Pero vamos, el método esperar tampoco lo usas en ningún sitio xdd Y por cierto, engelx, en cuanto a la velocidad del autoclick, supongo que le bastará con cambiarle el interval al propio timer, no? puesto que en su código está utilizando un Timer [MOD]: No hagas doble post.
|
|
« Última modificación: 27 Enero 2014, 15:37 pm por Eleкtro »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿como puedo pasar el interval de los timers a nanosegundos y picosegundos
Programación Visual Basic
|
thesmoker
|
0
|
1,751
|
17 Julio 2013, 22:32 pm
por thesmoker
|
|
|
Autoclick visual basic 2008 picosegundos
Programación General
|
Yo,wapo
|
1
|
2,474
|
10 Noviembre 2013, 14:35 pm
por Mad Antrax
|
|
|
(Ayuda)Autoclick VB2008 PICOSEGUNDOS
.NET (C#, VB.NET, ASP)
|
Yo,wapo
|
3
|
3,437
|
5 Enero 2014, 05:38 am
por Eleкtro
|
|
|
Como Crear Un Autoclick En C#
.NET (C#, VB.NET, ASP)
|
pablomillon
|
4
|
5,467
|
15 Enero 2014, 05:33 am
por Eleкtro
|
|
|
¿Como creo un autoclick en C#?
Programación C/C++
|
milenio204
|
2
|
2,833
|
25 Enero 2014, 13:08 pm
por vangodp
|
|