Miten semmonen vaikka, että rullan painauksesta painaa 5 kertaa left clikiä ? Olisi kiva tietää, että oppisin tämänkin. Olen jo muutaman kerran yritellyt ja lueskellut, mutta oli lopulta pakko kysyä vähän paremmilta koodaajilta :D
Tämä ei jotenkin taida toimia, koitin ainankin pastettaa moneen paikkaan :|
Private Declare Function SetCursorPos Lib "user32.dll" _ (ByVal x As Long, ByVal y As Long) As Long 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 LiikutaJaKlikkaa(x As Long, y As Long) 'Liikutetaan hiiri koordinaatteihin Call SetCursorPos(x, y) 'Klikataan hiirellä Call mouse_event(MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&) End Sub
Varmaankin sitä funktiota pitäisi myös kutsua.
How ? :D
Damn, yritä nyt jo vähitellen lukea sitä opasta oikein ajatuksella.
No ois kiva ku joku länttäis koodia et painaa rullaa niin 5 kertaa leftclick ees vinkkiä xD
Ois varmasti. Mutta mitä hyötyä siitä olisi sinun ohjelmointiharrastuksesi kannalta?
Laitat rullanpainalluseventtiin koodin, jossa kutsut tuota klikkausfunktiota viisi kertaa.
Kaikki muut on tiedossa paitsi rullauseventin pätkä veikkaan vb6mouse3, mutta ei tainnut mennä oikein :D
Veikkaus on huono lähtökohta ohjelmointiin. Jos tosiaan et oikeasti tiedä, miten funktiota kutsutaan, niin mene opiskelemaan jotain, kunnes tiedät.
Vastoin yleistä käsitystä, ohjelmointi ei ole copypasteamista.
Getasynckeystate:lla saa katsottua myös, onko hiiren keskinappi pohjassa. Aiheesta lisää löytyy ihan putkan haulla.
Täältä löytyy varmaan neuvoa:
http://msdn.microsoft.com/library/default.asp?
Tässä on sulle koodi, mutta tämä toimii kun hiiren keskimmäistä nappulaa klikkaa. En tiedä miten saisi toimimaan rullauksesta.
Private 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) Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Long Private Const VK_MBUTTON As Long = &H4 Private Const MOUSEEVENTF_LEFTDOWN As Long = &H2 Private Const MOUSEEVENTF_LEFTUP As Long = &H4 Dim counter As Integer Private Sub Form_Load() counter = 0 Timer1.Enabled = True Timer1.Interval = 50 Timer2.Enabled = False Timer2.Interval = 100 Timer3.Enabled = False Timer3.Interval = 1 End Sub Private Sub Timer1_Timer() If GetAsyncKeyState(VK_MBUTTON) Then Timer2.Enabled = True Else Timer2.Enabled = False counter = 0 End If End Sub Private Sub Timer2_Timer() If counter = 5 Then counter = 0 Timer2.Enabled = False Timer3.Enabled = False Else Timer3.Enabled = True counter = counter + 1 End If End Sub Private Sub Timer3_Timer() Call mouse_event(MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&) Timer3.Enabled = False End Sub
...ja kohta tullaan hieman muutellun koodin kanssa kyselemää että "miksei toimi?+". Valmiin koodin vika on juuri tämä.
Meitsi kirjoitti:
...ja kohta tullaan hieman muutellun koodin kanssa kyselemää että "miksei toimi?+". Valmiin koodin vika on juuri tämä.
Niin..
Mutta toi toimii.. Ainakin mulla.
No tottahan se toimii, jos sitä osaa käyttää, mutta jos tuon koodin menee laittamaan vaikka moduuliin, niin sittenpä ei taidakaan enää toimia. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.