Visual Basic.NET - gravar posicion del puntero del mouse

 
Vista:
Imágen de perfil de melqui
Val: 643
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

gravar posicion del puntero del mouse

Publicado por melqui (242 intervenciones) el 09/12/2021 21:26:17
hola chicos,
alguien peude dar una idea que como consigo gravar la posicion del mouse, dentro del monitor ?
no consigo, tengo este formulario
el funciona el me muestra la posicion, solo que necesito que al clicar registre en la listbox la posicion del cursor.
fuera del forms
Screenshot_10
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

gravar posicion del puntero del mouse

Publicado por Lizy (18 intervenciones) el 09/12/2021 22:32:08
Option Strict On

' Poner un DatagridView cuatro botones y dos Timer en el Form
' Agregar este código y es todo

Imports System.ComponentModel

Public Class Form1
Declare Auto Function GetAsyncKeyState Lib "user32" (ByVal vKey As Integer) As Integer
Declare Auto Sub mouse_event Lib "user32" (ByVal dwFlags As Int32, ByVal dx As Int32, ByVal dy As Int32, ByVal cButtons As Int32, ByVal dwExtraInfo As IntPtr)

Const MOUSEEVENTF_MOVE As Int32 = &H1 ' mouse move
Const MOUSEEVENTF_LEFTDOWN As Int32 = &H2 ' left button down
Const MOUSEEVENTF_LEFTUP As Int32 = &H4 ' left button up
Const MOUSEEVENTF_RIGHTDOWN As Int32 = &H8 ' right button down
Const MOUSEEVENTF_RIGHTUP As Int32 = &H10 ' right button up
'Const MOUSEEVENTF_MIDDLEDOWN As Int32 = &H20 ' middle button down
'Const MOUSEEVENTF_MIDDLEUP As Int32 = &H40 ' middle button up
Const MOUSEEVENTF_ABSOLUTE As Int32 = &H8000 ' absolute move
'Const MOUSEEVENTF_WHEEL As Int32 = &H800 ' wheel button rolled

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim CLM(4) As DataGridViewTextBoxColumn

CLM(0) = New DataGridViewTextBoxColumn
CLM(0).HeaderText = "X"
CLM(0).Name = "X"
CLM(0).Width = 50
CLM(0).Visible = True
DataGridView1.Columns.Add(CLM(0))

CLM(1) = New DataGridViewTextBoxColumn
CLM(1).HeaderText = "Y"
CLM(1).Name = "Y"
CLM(1).Width = 50
CLM(1).Visible = True
DataGridView1.Columns.Add(CLM(1))

CLM(2) = New DataGridViewTextBoxColumn
CLM(2).HeaderText = "Z"
CLM(2).Name = "Z"
CLM(2).Width = 50
CLM(2).Visible = True
DataGridView1.Columns.Add(CLM(2))

CLM(3) = New DataGridViewTextBoxColumn
CLM(3).HeaderText = "T"
CLM(3).Name = "T"
CLM(3).Width = 50
CLM(3).Visible = True
DataGridView1.Columns.Add(CLM(3))

DataGridView1.ReadOnly = True
'DataGridView1.Visible = False ' Si todo funciona bien

Timer1.Interval = 10 : Timer2.Interval = 1000
Button1.Text = "REC" : Button2.Text = "STP" : Button3.Text = "PLY" : Button4.Text = "CLR"
Button1.Enabled = True : Button2.Enabled = False : Button3.Enabled = False : Button4.Enabled = False

End Sub

Dim SLR As Boolean = False

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Button1.Enabled = False : Button2.Enabled = True : Button2.Focus()
Timer2.Start()
Timer1.Start()
End Sub

Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
If X_ACT = X_ANT And Y_ACT = Y_ANT Then
ROWS = DataGridView1.RowCount - 1

NN = NN + 1

If NN > 1 Then
If DataGridView1.AllowUserToAddRows = True Then
DataGridView1.Rows(ROWS - 1).Cells(3).Value = (NN - 1).ToString
Else
DataGridView1.Rows(ROWS).Cells(3).Value = (NN - 1).ToString
End If
End If
End If
End Sub

Dim MT As Integer = 0, MT_ANT As Integer = 0, GA As Integer = 0
Dim X_ACT As String, Y_ACT As String, X_ANT As String, Y_ANT As String, ROWS As Integer = 0
Dim NN As Integer = 0

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
X_ACT = CStr(Cursor.Position.X)
Y_ACT = CStr(Cursor.Position.Y)

For MT = 250 To 1 Step -1
GA = GetAsyncKeyState(MT)
If GA <> 0 Then
Exit For
End If
Next

If MT < 0 Then ' Hay combinaciones raras que lanzan a MT = -1
MT = 0
End If

If MT = MT_ANT Then ' Aquí entra lo igual a lo anterior evitando repeticiones
' Pero si son ceros o unos
If MT = 0 Then
If X_ACT = X_ANT And Y_ACT = Y_ANT Then

Else ' Solo si la posición del cursor se mueve
DataGridView1.Rows.Add(X_ACT, Y_ACT, MT.ToString, "")
X_ANT = X_ACT : Y_ANT = Y_ACT
NN = 0
End If

ElseIf MT = 1 Then ' Según convenga al programa, graba continuamente la presion del mouse
DataGridView1.Rows.Add(X_ACT, Y_ACT, MT.ToString, "") ' Al seleccionar o arrastrar por ejemplo
NN = 0
End If

Else

If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" & Chr(32), (Chr(MT_ANT))) <> 0 Then
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" & Chr(32), (Chr(MT))) <> 0 Then
DataGridView1.Rows.Add(X_ACT, Y_ACT, "0", "") ' Le da un cero de separacion
MT_ANT = MT
End If
End If

NN = 0
DataGridView1.Rows.Add(X_ACT, Y_ACT, MT.ToString, "")
MT_ANT = MT

End If

End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Timer1.Stop() : Timer2.Stop() : Button2.Enabled = False : Button3.Enabled = True : Button4.Enabled = True
Button3.Focus()
End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Button3.Enabled = False : Button4.Enabled = False
ROW = 0
ROWS = DataGridView1.RowCount - 1
PLY()
End Sub

Dim ROW As Integer = 1, Z_ACT As String = "", Z_ANT As String, T_ACT As String = "", PX As String, PY As String, UNOS As Integer
Dim CE As String = ""
Dim L1 As String = "", L2 As String = "", L3 As String = ""

Private Sub PLY()
Do
X_ACT = DataGridView1.Rows(ROW).Cells(0).Value.ToString
Y_ACT = DataGridView1.Rows(ROW).Cells(1).Value.ToString
Z_ACT = DataGridView1.Rows(ROW).Cells(2).Value.ToString
T_ACT = DataGridView1.Rows(ROW).Cells(3).Value.ToString

Cursor.Position = New Point(CInt(X_ACT), CInt(Y_ACT))

PX = CStr(CInt(X_ACT) * 65535 / System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width)
PY = CStr(CInt(Y_ACT) * 65535 / System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height)

CE = ""

If T_ACT <> "" Then ' Regresa la pausa en segundos
Threading.Thread.Sleep(CInt(T_ACT) * 1000)
End If

If Z_ACT = "1" Then
UNOS = UNOS + 1

If UNOS = 1 Then ' solo entra el primer uno (LeftDown)
Threading.Thread.Sleep(300) ' para estabilizar la accion
mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE + MOUSEEVENTF_LEFTDOWN, CInt(PX), CInt(PY), 0, CType(0, IntPtr))
End If ' Esto hace posible arrastrar objetos o seleccionar texto

ElseIf Z_ANT = "1" Then ' Ya dejó de ser uno y lo suelta
mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE + MOUSEEVENTF_LEFTUP, CInt(PX), CInt(PY), 0, CType(0, IntPtr))
UNOS = 0 ' ya se produjo el leftup y se puede devolver la variable a cero
Threading.Thread.Sleep(300) ' para estabilizar la accion

End If

If Z_ACT = "2" Then
mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE + MOUSEEVENTF_RIGHTDOWN, CInt(PX), CInt(PY), 0, CType(0, IntPtr))
mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE + MOUSEEVENTF_RIGHTUP, CInt(PX), CInt(PY), 0, CType(0, IntPtr))
Threading.Thread.Sleep(700)

ElseIf Z_ANT = "0" And Z_ACT <> "0" Then ' TeclasDelTeclado
Z_ANT_0() : Threading.Thread.Sleep(60)

ElseIf Z_ANT = "160" Or Z_ANT = "161" Then ' Teclas Shift
Z_ANT_160_Or_Z_ANT_161()

ElseIf Z_ANT = "162" Or Z_ANT = "163" Then ' Teclas de Control
Z_ANT_162_Or_Z_ANT_163()

ElseIf Z_ANT = "164" Then ' Teclas ALT
Z_ANT_164()

Else
DblClick()

End If

If CE <> "" Then
SendKeys.SendWait(CE)
End If

ROW = ROW + 1
Z_ANT = Z_ACT

If ROW >= ROWS - 5 Then ' Para proteger que DblClick lea fuera del rango
Button3.Enabled = True : Button4.Enabled = True : Button3.Focus()
Me.Refresh() : Me.Activate() : Me.Focus()
Exit Do
End If

Threading.Thread.Sleep(20)
Application.DoEvents()

Loop

Timer2.Stop()

End Sub

Private Sub DblClick()
L1 = DataGridView1.Rows(ROW + 0).Cells(2).Value.ToString
L2 = DataGridView1.Rows(ROW + 1).Cells(2).Value.ToString
L3 = DataGridView1.Rows(ROW + 2).Cells(2).Value.ToString

If Z_ANT = "0" And L1 = "1" And L2 = "0" And L3 = "1" Then
GoTo ACT
ElseIf Z_ANT = "1" And L1 = "0" And L2 = "1" And L3 = "1" Then
GoTo ACT
End If

Exit Sub

ACT:
Threading.Thread.Sleep(10)

mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE + MOUSEEVENTF_LEFTDOWN, CInt(PX), CInt(PY), 0, CType(0, IntPtr))
mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE + MOUSEEVENTF_LEFTUP, CInt(PX), CInt(PY), 0, CType(0, IntPtr))

Threading.Thread.Sleep(10)

mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE + MOUSEEVENTF_LEFTDOWN, CInt(PX), CInt(PY), 0, CType(0, IntPtr))
mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE + MOUSEEVENTF_LEFTUP, CInt(PX), CInt(PY), 0, CType(0, IntPtr))

Threading.Thread.Sleep(10)

mouse_event(MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE + MOUSEEVENTF_LEFTUP, CInt(PX), CInt(PY), 0, CType(0, IntPtr))

End Sub

Private Sub Z_ANT_0()

If Z_ACT = "9" Then
CE = "{TAB}"
ElseIf Z_ACT = "27" Then
CE = "{ESC}"
ElseIf Z_ACT = "8" Then
CE = "{BKSP}"
ElseIf Z_ACT = "46" Then
CE = "{DEL}"
ElseIf Z_ACT = "32" Then
CE = " "
ElseIf Z_ACT = "37" Then
CE = "{LEFT}"
ElseIf Z_ACT = "39" Then
CE = "{RIGHT}"
ElseIf Z_ACT = "38" Then
CE = "{UP}"
ElseIf Z_ACT = "40" Then
CE = "{DOWN}"
ElseIf Z_ACT = "36" Then
CE = "{HOME}"
ElseIf Z_ACT = "35" Then
CE = "{END}"
ElseIf Z_ACT = "13" Then
CE = "{ENTER}"
ElseIf Z_ACT = "44" Then
' imprimir screen
ElseIf Z_ACT = "220" Then
CE = "{" & "|" & "}"
ElseIf Z_ACT = "219" Then
CE = "{" & "'" & "}"
ElseIf Z_ACT = "221" Then
CE = "{" & "¿" & "}"
ElseIf Z_ACT = "111" Then
CE = "{" & "/" & "}"
ElseIf Z_ACT = "106" Then
CE = "{" & "*" & "}"
ElseIf Z_ACT = "109" Then
CE = "{" & "-" & "}"
ElseIf Z_ACT = "107" Then
CE = "{" & "+" & "}"
ElseIf Z_ACT = "222" Then
CE = "{" & "{" & "}"
ElseIf Z_ACT = "191" Then
CE = "{" & "}" & "}"
ElseIf Z_ACT = "189" Then
CE = "{" & "-" & "}"
ElseIf Z_ACT = "190" Then
CE = "{" & "." & "}"
ElseIf Z_ACT = "188" Then
CE = "{" & "," & "}"
ElseIf Z_ACT = "226" Then
CE = "{" & "<" & "}"
ElseIf Z_ACT = "192" Then
CE = "{" & "ñ" & "}"

Else

If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", UCase(Chr(CInt(Val(Z_ACT))))) <> 0 Then

If My.Computer.Keyboard.CapsLock = True Then
CE = "{" & LCase(Chr(CInt(Val(Z_ACT)))) & "}"
Else
CE = "{" & LCase(Chr(CInt(Val(Z_ACT)))) & "}"
End If

ElseIf InStr("1234567890", Chr(CInt(Val(Z_ACT)))) <> 0 Then
CE = "{" & Chr(CInt(Val(Z_ACT))) & "}"
End If

End If

End Sub

Private Sub Z_ANT_160_Or_Z_ANT_161()
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", UCase(Chr(CInt(Val(Z_ACT))))) <> 0 Then

If My.Computer.Keyboard.CapsLock = False Then
CE = "{" & UCase(Chr(CInt(Val(Z_ACT)))) & "}"
Else
CE = "{" & UCase(Chr(CInt(Val(Z_ACT)) + 32)) & "}"
End If

ElseIf Z_ACT = "49" Then
CE = "{" & "!" & "}"
ElseIf Z_ACT = "36" Then
CE = "+{HOME}"
ElseIf Z_ACT = "35" Then
CE = "+{END}"
ElseIf Z_ACT = "39" Then
CE = "+{RIGHT}"
ElseIf Z_ACT = "37" Then
CE = "+{LEFT}"
ElseIf Z_ACT = "9" Then
CE = "+{TAB}"
ElseIf Z_ACT = "50" Then
CE = "{" & Chr(34) & "}"
ElseIf Z_ACT = "51" Then
CE = "{" & "#" & "}"
ElseIf Z_ACT = "52" Then
CE = "{" & "$" & "}"
ElseIf Z_ACT = "53" Then
CE = "{" & "%" & "}"
ElseIf Z_ACT = "54" Then
CE = "{" & "&" & "}"
ElseIf Z_ACT = "55" Then
CE = "{" & "/" & "}"
ElseIf Z_ACT = "56" Then
CE = "{" & "(" & "}"
ElseIf Z_ACT = "57" Then
CE = "{" & ")" & "}"
ElseIf Z_ACT = "48" Then
CE = "{" & "=" & "}"
ElseIf Z_ACT = "219" Then
CE = "{" & "?" & "}"
ElseIf Z_ACT = "221" Then
CE = "{" & "¡" & "}"
ElseIf Z_ACT = "222" Then
CE = "{" & "[" & "}"
ElseIf Z_ACT = "191" Then
CE = "{" & "]" & "}"
ElseIf Z_ACT = "189" Then
CE = "{" & "_" & "}"
ElseIf Z_ACT = "190" Then
CE = "{" & ":" & "}"
ElseIf Z_ACT = "188" Then
CE = "{" & ";" & "}"
ElseIf Z_ACT = "226" Then
CE = "{" & ">" & "}"
ElseIf Z_ACT = "192" Then
CE = "{" & "Ñ" & "}"
End If

End Sub

Private Sub Z_ANT_162_Or_Z_ANT_163()
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", UCase(Chr(CInt(Val(Z_ACT))))) <> 0 Then
CE = "^{" & UCase(Chr(CInt(Val(Z_ACT)))) & "}"
ElseIf Z_ACT = "36" Then
CE = "^{HOME}"
ElseIf Z_ACT = "35" Then
CE = "^{END}"
ElseIf Z_ACT = "13" Then
CE = "^{ENTER}"
End If

End Sub

Private Sub Z_ANT_164()
L1 = DataGridView1.Rows(ROW + 0).Cells(2).Value.ToString
L2 = DataGridView1.Rows(ROW + 1).Cells(2).Value.ToString
L3 = DataGridView1.Rows(ROW + 2).Cells(2).Value.ToString

If L1 = "102" And L2 = "97" And L3 = "96" Then
CE = "á"
ElseIf L1 = "99" And L2 = "97" And L3 = "96" Then
CE = "é"
ElseIf L1 = "102" And L2 = "97" And L3 = "18" Then
CE = "í"
ElseIf L1 = "102" And L2 = "98" And L3 = "97" Then
CE = "ó"
ElseIf L1 = "102" And L2 = "99" And L3 = "97" Then
CE = "ú"
ElseIf L1 = "102" And L2 = "100" And L3 = "18" Then
CE = "@"
ElseIf L1 = "102" And L2 = "100" And L3 = "97" Then
CE = "ñ"
ElseIf L1 = "102" And L2 = "101" And L3 = "97" Then
CE = "Ñ"
ElseIf L1 = "104" And L2 = "97" And L3 = "18" Then
CE = "Á" ' 181
ElseIf L1 = "100" And L2 = "97" And L3 = "18" Then
CE = "É" ' 144
ElseIf L1 = "100" And L2 = "98" And L3 = "97" Then
CE = "Í" ' 214
ElseIf L1 = "100" And L2 = "98" And L3 = "18" Then
CE = "Ó" ' 224
ElseIf L1 = "99" And L2 = "98" And L3 = "18" Then
CE = "Ú" ' 233
End If

End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
DataGridView1.Rows.Clear() : Button1.Enabled = True : Button3.Enabled = False : Button4.Enabled = False : Button1.Focus()
End Sub

End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-2
Comentar
Imágen de perfil de melqui
Val: 643
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

gravar posicion del puntero del mouse

Publicado por melqui (242 intervenciones) el 10/12/2021 13:53:10
excelente, solo que el grava cuando muevo el mouse, lo q necesitaria es al clicar
mas ya es suficiente para comenzar. solo dar unos ajuste. creo que soluciona mi problema.
Screenshot_12

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

gravar posicion del puntero del mouse

Publicado por Phil Rob (1554 intervenciones) el 09/12/2021 23:02:55
Hola Melqui

Ves el parámetro "e" del procedimiento MouseMouve, lo contiene los valores X y Y del cursor.
Si no lo ves, haré ejemplo mañana.
El defecto del evento MouseMouve es de se activar para cada píxel.

Buenas noches....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sam
Val: 37
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

gravar posicion del puntero del mouse

Publicado por Sam (18 intervenciones) el 10/12/2021 07:47:04
Hola

MouseMove

Este evento ocurre cuando el cursor del mouse se mueve sobre la superficie del objeto. El evento proporciona las coordenadas del cursor a través de las propiedades X e Y de su parámetro de tipo MouseEventArgs.

1
2
3
Private Sub Button1_MouseMove (ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseMove
     MessageBox.Show (CType (e.X, String) & "" & CType (e.Y, String))
End Sub

El evento MouseMove ocurre cada vez que se mueve el cursor, sin importar cuán imperceptible sea. Su uso, que tiene un alto costo en el sistema, solo se requiere en raras ocasiones. Los eventos MouseEnter y MouseLeave son suficientes en la mayoría de los casos en los que no es necesario conocer las coordenadas del cursor.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

gravar posicion del puntero del mouse

Publicado por Phil Rob (1554 intervenciones) el 10/12/2021 08:17:22
Hola,

Iba escribir un ejemplo pero veo que Sam has estado más rápido ...

A los dos, que tengan un buen día
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de melqui
Val: 643
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

gravar posicion del puntero del mouse

Publicado por melqui (242 intervenciones) el 10/12/2021 13:30:28
eso me funciona solamente dentro del evento movemouse, mas conforme reporte dentro del monitor, fuera del forms
si notas las cordinadas 2091,145 esta apuntando en algun lugar del monitor fuera del formulario.
este es mi codigo que muestra la posicion en qualquier lugar de monitor, el me esta funcionando el problema que tengo es que no se como gravar al hcer un click
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub TrackerMouse()
 
        While (True)
                Dim posX = MousePosition.X
                Dim posY = MousePosition.Y
                PosicaoMovendoMouse(String.Format("X:{0}  Y:{1}", posX, posY))
 
            End While
 
 
 
    End Sub
 
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Tr_Mouse = New Thread(AddressOf TrackerMouse)
        Tr_Mouse.Start()
    End Sub

aqui tienes un ejemplo que te pueda guiar, la nueva cordinada esta apuntando en algun lugar donde indico el circulo.

Screenshot_11
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

gravar posicion del puntero del mouse

Publicado por Phil Rob (1554 intervenciones) el 10/12/2021 15:54:10
Hola Melqui,

No puedo ejecutar tus códigos. Envia me tu proyecto completo con Mail y DropBox o completes el proyecto que te envió aquí adjuntado.

Tomaré un poco tiempo para testar ...
Si el procedimiento PosicaoMovendoMouse() recibe los valores X y Y, no es posible de los enviados en el Thread initial del programa pero quizá puedes escribir un fichero TXT en este procedimiento PosicaoMovendoMouse().

Por ejemplo, el codigo siguiente tiene los valors :

1
2
3
4
5
6
7
8
9
Private Sub TrackerMouse()
        Static F As New System.IO.StreamWriter("XY.TXT", True)
        While (True)
            Dim posX = MousePosition.X
            Dim posY = MousePosition.Y
 
            F.WriteLine(posX & ", " & posY)
' ...
' ... no olvidar un Close ...

...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

gravar posicion del puntero del mouse

Publicado por Phil Rob (1554 intervenciones) el 10/12/2021 17:59:04
Continuación ...

Para registrar los valores cuando el botón izquierdo es apoyado, prueba el código siguiente :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub TrackerMouse()
        Dim F As New System.IO.StreamWriter("XY.TXT", True)
        While MouseButtons <> MouseButtons.Left
            Continue While
        End While
        F.WriteLine(MousePosition.X & ", " & MousePosition.Y)
        F.Close()
    End Sub
 
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim Tr_Mouse As New System.Threading.Thread(AddressOf TrackerMouse)
            Tr_Mouse.Start()
    End Sub

... dice me ....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar