Support Forums
[HELP] Visual Basic - Printable Version

+- Support Forums (https://www.supportforums.net)
+-- Forum: Categories (https://www.supportforums.net/forumdisplay.php?fid=87)
+--- Forum: Coding Support Forums (https://www.supportforums.net/forumdisplay.php?fid=18)
+---- Forum: Visual Basic and the .NET Framework (https://www.supportforums.net/forumdisplay.php?fid=19)
+---- Thread: [HELP] Visual Basic (/showthread.php?tid=23004)



[HELP] Visual Basic - JusCaus - 11-01-2011

Hey guys, I'm tring to make a bot in visual basic, but im have no clue on what i need to do. This is what i NEED it to do....


::: Get a box cord. (checks for a box on the screen)
::: If (xcolor) is in the box
::: MouseClick on a button.. (Not in the box)

So pretty much, theres a box on the screen with a color moving when it gets to a certian place (in the box) the mouse will click a button..


Any help?


RE: [HELP] Visual Basic - SomeWhiteGuy? - 11-01-2011

What are you trying to make the bot for? It might be better if you just say that...


RE: [HELP] Visual Basic - JusCaus - 11-01-2011

its an online block stacking game. blocks go from left to right, and you stack them to the top. I already have the correct color. and the coords of the field that needs checked and the mouse coord.


RE: [HELP] Visual Basic - SomeWhiteGuy? - 11-02-2011

(11-01-2011, 02:31 PM)JusCaus Wrote: its an online block stacking game. blocks go from left to right, and you stack them to the top. I already have the correct color. and the coords of the field that needs checked and the mouse coord.

The click on it from a point. Or, get the ID of the button and make the webbrowser click it.


RE: [HELP] Visual Basic - JusCaus - 11-02-2011

I have tried and tried.....

Code:
Import System.Runtime.InteropServices
'...

<DllImport("user32.dll")> _
Public Shared Sub mouse_event(ByVal dwFlags As UInt32, ByVal dx As UInt32, ByVal dy As UInt32, ByVal dwData As UInt32, ByVal dwExtraInfo As UIntPtr)
End Sub

Public Sub TryClick(ByVal clickPosition As Point, ByVal checkPositions As Point(), ByVal col As Color)
If ReadyToClick(checkPositions, col) Then 'make sure the positions hold the color.
Dim dx As Int32 = clickPosition.X * 65535 / Screen.PrimaryScreen.Bounds.Width 'calculate the absolute position of the x-axis
Dim dy As Int32 = clickPosition.Y * 65535 / Screen.PrimaryScreen.Bounds.Width ' " " " y-axis
mouse_event(&H8000 Or &H1 Or &H2 Or &H4, dx, dy, 0, UIntPtr.Zero) 'move the mouse to an absolute position and click.
End If
End Sub

Private Function CaptureScreen() As Bitmap
Dim screenSize As Size = Screen.PrimaryScreen.Bounds.Size 'calculate the size of the screen
Dim bmp As New Bitmap(screenSize.Width, screenSize.Height) 'make a buffer bitmap to hold the screen data
Using g As Graphics = Graphics.FromImage(bmp) 'create a graphics object to link to our bitmap
g.CopyFromScreen(Point.Empty, Point.Empty, screenSize) 'copy the screen data into the bitmap.
End Using
Return bmp
End Function

Private Function ReadyToClick(ByVal pts As Point(), ByVal c As Color) As Boolean
Dim screen As Bitmap = CaptureScreen()
For Each pt As Point In pts
If Not screen.GetPixel(pt.X, pt.Y) = c Then Return False 'if the color are the current point <> the correct color exit immediately
Next
Return True
End Function

[/code]
Private CheckPoints As Point() = New Point() {New Point(550, 609), _
New Point(550, 583), _
New Point(550, 556), _
New Point(550, 554), _
New Point(550, 500), _
New Point(550, 474), _
New Point(550, 449), _
New Point(550, 423), _
New Point(550, 393), _
New Point(550, 368), _
New Point(550, 339), _
New Point(550, 313), _
New Point(550, 287), _
New Point(550, 258)} 'array of points to look for the color at.

Private CheckColor As Color = Color.FromArgb(177, 11, 60) 'color to check for (in RBG)
Private ClickPosition As New Point(637, 690) 'position to click at when it's ready to do so

'...some method
TryClick(Me.ClickPosition, Me.CheckPoints, Me.CheckColor)
'...end method

Still no luck.....


RE: [HELP] Visual Basic - Party - 11-02-2011

Maybe try to pay a professional coder to help you complete this task.