Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Hiiren automaattinen klikkaus

Sivun loppuun

filthy [03.01.2009 23:58:49]

#

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ä?

Short Php [04.01.2009 13:08:45]

#

    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

filthy [05.01.2009 14:14:43]

#

Milläs saan sen sitte rightclikkaamaan
Hyvin toiminu tähä asti

neau33 [05.01.2009 15:15:24]

#

Moikka filthy!

lisää määrittelyihin...

Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10

ja syötä parametreinä mouse_event funktiolle

JussiR [05.01.2009 16:36:54]

#

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

filthy [06.01.2009 00:29:21]

#

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..

Grez [06.01.2009 05:18:20]

#

Threading.Thread.Sleep(aika millisekunteina)

JussiR [08.01.2009 08:46:17]

#

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

filthy [08.01.2009 09:30:39]

#

Toimi kyllä tuo sleep ihan niin kuin sen pitääkin


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta