Autor
|
Tema: Problema al recoger variables (Leído 2,845 veces)
|
Abu-Ele-Tech
Desconectado
Mensajes: 7
|
Hola buenas, estoy realizando un programa y un modulo de el me esta dando problemas. El problema lo tengo en el sub procedimiento "Keydonwn"; he asignado la tecla F8 para guardar la posicion del puntero del mouse y F9 para hacer un call a otro sub procedimiento que simula un click izquierdo, pero a la hora de pulsar F9 no hace click en las coordenadas guardadas en las variables CoordX y CoordY sino donde este situado el raton. Veo que cambiando el call al LeftClick() por unos labels para comprobar las variables devuelven un valor de 0 y no los valores recogidos cuando hago F8. Gracias ante todo a toda la comunidad por tantos años que lleva online esta pagina. PD: Sé que el código es chapucero (por decir algo) y poco profesional. Option Explicit 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 Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Const MOUSEEVENTF_MOVE = &H1 ' movimiento del mouse Private Const MOUSEEVENTF_LEFTDOWN = &H2 ' botón izquierdo presionado Private Const MOUSEEVENTF_LEFTUP = &H4 ' botón izquierdo soltado Private Const MOUSEEVENTF_RIGHTDOWN = &H8 ' botón derecho presionado Private Const MOUSEEVENTF_RIGHTUP = &H10 ' botón derecho soltado Private Const MOUSEEVENTF_MIDDLEDOWN = &H20 ' botón central presionado Private Const MOUSEEVENTF_MIDDLEUP = &H40 ' botón central soltado Private Const MOUSEEVENTF_ABSOLUTE = &H8000 ' movimiento absoluto Private Type POINTAPI X As Long Y As Long End Type Dim Mouse As POINTAPI Private Sub Form_Load() Timer1.Interval = 100 Timer2.Interval = 1000 lblTimeNow.Caption = Time End Sub Private Sub Timer1_Timer() Call GetCursorPos(Mouse) lblLiveX.Caption = Mouse.X lblLiveY.Caption = Mouse.Y End Sub Private Sub Timer2_Timer() lblTimeNow.Caption = Time End Sub Private Sub Form_KeyDown(Keycode As Integer, Shift As Integer) Select Case Keycode Case 119 'F8 Dim CoordX As Integer Dim CoordY As Integer CoordX = Mouse.X CoordY = Mouse.Y lblMemX.Caption = CoordX lblMemY.Caption = CoordY lblMemSav.Caption = "Saved!" Case 120 'F9 Call LeftClick End Select End Sub Public Sub LeftClick() LeftDown LeftUp End Sub Public Sub LeftDown() mouse_event MOUSEEVENTF_LEFTDOWN, CoordX, CoordY, 0, 0 End Sub Public Sub LeftUp() mouse_event MOUSEEVENTF_LEFTUP, CoordX, CoordY, 0, 0 End Sub Public Sub MoveMouse() mouse_event MOUSEEVENTF_MOVE, lblMemX, lblMemY, 0, 0 End Sub
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
Hola!
Y si colocas un call a MoveMouse() dentro de LeftClick(), funciona?
Porque veo la función definida, pero no que la llames para mover el caret...
Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Abu-Ele-Tech
Desconectado
Mensajes: 7
|
Hice el MouseMove() en una de las tantas pruebas para hacerlo funcionar, pero debería funcionar sin él. Ni colocandolo dentro del procedimiento de LeftClick() ni dentro del Select Case justo antes de hacer el call a LeftClick, esto ya lo probé, cambie varibles, recogí de los caption en vez de las variables pero nada.
PD: MoveMouse() tiene un error, puse lblMemX y lblMemY en vez de CoordX y CoordY.
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
PD: MoveMouse() tiene un error, puse lblMemX y lblMemY en vez de CoordX y CoordY.
Y ahora funciona?
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Abu-Ele-Tech
Desconectado
Mensajes: 7
|
No, disculpa, ponga donde lo ponga me salta: Compile error: Sub or Function not defined
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
Declara las variables CoordX y CoordY al mismo nivel que Mouse (al inicio del form, para que sean globales al form).
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Abu-Ele-Tech
Desconectado
Mensajes: 7
|
Las he declarado justo debajo de 'Dim Mouse As POINTAPI' y tampoco funciona, con el MouseMove poniendolo en dentro de LeftClick() mueve el puntero a otro sitio (no el que le digo) igual que si lo pongo dentro del Select Case, sin el call a MouseMove() no lo mueve pero hace click donde este el puntero (desconozco si poniedo el MouseMove hace click).
Gracias MCKSys por tu atencion.
PD: Mas que encontrar la solucion me gustaria saber el porque pasa esto para que en un futuro no me vuelva a pasar y asi aprender.
|
|
« Última modificación: 6 Enero 2014, 17:47 pm por Abu-Ele-Tech »
|
En línea
|
|
|
|
MCKSys Argentina
|
Tampoco funciona, con el MouseMove poniendolo en dentro de LeftClick() mueve el puntero a otro sitio (no el que le digo) igual que si lo pongo dentro del Select Case, sin el call a MouseMove() no lo mueve pero hace click donde este el puntero (desconozco si poniedo el MouseMove hace click).
Gracias MCKSys por tu atencion.
OK. Entonces no mueve el cursor, pero si ya hace los clicks. Solo para aclarar, el error estaba en la declaracion de las variables CoordX y CoordY. Como estaban al principio, eran válidas sólo dentro de la sub Sub Form_KeyDown. Al colocarlas al principio del codigo del form, las haces visibles para todos las subs/functions del form. Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Abu-Ele-Tech
Desconectado
Mensajes: 7
|
En realidad estoy como he llegado jaja, sigue sin funcionar, como dije en mi primer post: 'a la hora de pulsar F9 no hace click en las coordenadas guardadas en las variables CoordX y CoordY sino donde este situado el raton.'
Un apunte: supuestamente indicandole las coordenadas en los parametros de MOUSEEVENTF_LEFTDOWN debe hacer el click sin antes mover el ratón mediante MOUSEEVENTF_MOVE ¿no?
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema de Variables
Programación Visual Basic
|
Timerlux
|
5
|
2,435
|
21 Junio 2007, 20:41 pm
por Sancho.Mazorka
|
|
|
Problema de variables¿?
.NET (C#, VB.NET, ASP)
|
Codename!!
|
4
|
3,651
|
27 Febrero 2010, 18:52 pm
por Codename!!
|
|
|
recoger variables de formularios con php.
Desarrollo Web
|
mastertux
|
2
|
5,064
|
24 Noviembre 2011, 15:33 pm
por jamarchi
|
|
|
[BATCH] ¿Como puedo meter variables dentro de variables?
Scripting
|
Meine programmen
|
1
|
4,191
|
24 Marzo 2012, 16:48 pm
por Eleкtro
|
|
|
Problema a recoger variables pasadas de servlet a JPS
Java
|
luar79
|
0
|
2,172
|
23 Enero 2017, 11:49 am
por luar79
|
|