在VB.Net中设置光标位置
是的,很简单 我有一个简单的像素搜索功能(搜索屏幕上的棕色像素)。 如果它发现了一个,它应该将鼠标移动到该位置并单击它 这在全屏拍摄中已经非常有效了。 为了加快整个过程,我只想捕获Form1窗口(之前我将其设置为透明,以便可以设置和更改窗口大小以仅捕获我想要的屏幕) 如果找到像素,它不会将光标移动到像素位置,而是移动到左上屏幕的某个位置。这是因为它只捕获了表格1的x,y,而不是整个屏幕,并且将鼠标移动到屏幕上的40,25与表格1中的40,25的位置不同 如何将鼠标移动到Form1像素位置在VB.Net中设置光标位置,vb.net,Vb.net,是的,很简单 我有一个简单的像素搜索功能(搜索屏幕上的棕色像素)。 如果它发现了一个,它应该将鼠标移动到该位置并单击它 这在全屏拍摄中已经非常有效了。 为了加快整个过程,我只想捕获Form1窗口(之前我将其设置为透明,以便可以设置和更改窗口大小以仅捕获我想要的屏幕) 如果找到像素,它不会将光标移动到像素位置,而是移动到左上屏幕的某个位置。这是因为它只捕获了表格1的x,y,而不是整个屏幕,并且将鼠标移动到屏幕上的40,25与表格1中的40,25的位置不同 如何将鼠标移动到Form1像素位置 D
Dim xd3 As Color = Color.FromArgb(255, 193, 105, 79)
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Integer, ByVal y As Integer) As Integer
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer)
Const MOUSEEVENTF_LEFTDOWN As UInteger = &H2
Const MOUSEEVENTF_LEFTUP As UInteger = &H4
Private Sub FindPixels()
found = False
Using b As New Bitmap(Me.Width, Me.Height)
Using g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(b)
Try
g.CopyFromScreen(Me.Left, Me.Top, 0, 0, b.Size)
Catch
End Try
For i = 0 To (b.Width - 1)
For j = 0 To (b.Height - 1)
If b.GetPixel(i, j) = xd3 Then
SetCursorPos(i, j)
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
found = True
End If
Next
Next
End Using
End Using
End Sub
别担心,我是哑巴。通过添加Me.Location.X和Me.Location.Y来修复它别管我是傻瓜。通过添加Me.Location.X和Me.Location.Y修复了此问题