Niin VB 2008 expressistä oli kyse
Eli ongelma on että en osaa tehdä formiani painamaan hiirtä automaattisesti.
Syötät haluttavat koordinaatit, hiiri menee siihen ja painaa.
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim xy1 As New System.Drawing.Point xy1.X = Label1.Text xy1.Y = Label2.Text Cursor.Position = xy1 'Tähän kohtaan tulisi mouseclick tjsp.. end sub
Miten saan tehtyä?
Private Declare Sub mouse_event Lib "user32" Alias "mouse_event" _ (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, _ ByVal cButtons As Long, ByVal dwExtraInfo As Long) Private Const MOUSEEVENTF_LEFTDOWN As Long = &H2 Private Const MOUSEEVENTF_LEFTUP As Long = &H4 Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim xy1 As New System.Drawing.Point xy1.X = Label1.Text xy1.Y = Label2.Text Cursor.Position = xy1 Call mouse_event(MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&) end sub
Milläs saan sen sitte rightclikkaamaan
Hyvin toiminu tähä asti
Moikka filthy!
lisää määrittelyihin...
Private Const MOUSEEVENTF_RIGHTDOWN = &H8 Private Const MOUSEEVENTF_RIGHTUP = &H10
ja syötä parametreinä mouse_event funktiolle
Public 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) Public Const MOUSEEVENTF_LEFTUP = &H4 Public Const MOUSEEVENTF_LEFTDOWN = &H2 Public Const MOUSEEVENTF_RIGHTDOWN = &H8 Public Const MOUSEEVENTF_RIGHTUP = &H10 Public Const MOUSEEVENTF_MIDDLEDOWN = &H20 ' middle button down Public Const MOUSEEVENTF_MIDDLEUP = &H40 ' middle button up Public Sub LeftDown() mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0 End Sub Public Sub LeftUp() mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 End Sub Public Sub RightDown() mouse_event MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0 End Sub Public Sub RightUp() mouse_event MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 End Sub Public Sub MiddleDown() mouse_event MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0 End Sub Public Sub MiddleUp() mouse_event MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0 End Sub
EDIT: jaa vb express.. tää on VB6:seen, mutta saattaa toimia
Joo-o toimii mukavasti.
Yksi homma jäi kyllä harmittamaan.
Tuo formi tekee homman niin nopeasti, että jos haluan painaa rightiä (yleensä tulee valikko) valita sieltä jotai leftillä nii valikko ei oo ees kerenny tulla ku tuo left click on jo tehty.
Eli oisko jotn hidastusta tehtävien välille koska timerillä tuota ei oikein onnistumaan saa..
Threading.Thread.Sleep(aika millisekunteina)
Itse en suosittele Sleepiä, koska ainakin VB6:ssa se pysäyttää koko ohjelman sen ajaksi eli ei se vailkko kerkeä silti tulla (veikkaan).
Mutta kokeile tätä (VB6 koodia taas, mutta silti..)
Private Declare Function timeGetTime Lib "winmm.dll" () As Long Public Function WaitMS(TimeOut As Long) Dim TimeNow As Long TimeNow = timeGetTime() Do DoEvents Loop While TimeNow + TimeOut > timeGetTime() End Function
Toimi kyllä tuo sleep ihan niin kuin sen pitääkin
Aihe on jo aika vanha, joten et voi enää vastata siihen.