Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Hiiren klikkausten tallennus tiedostoon

Feel Free [07.04.2005 08:12:03]

#

Miten Visual Basicissa voi tallentaa jokaisen hiiren painalluksen tiedostoon?

Antti Laaksonen [07.04.2005 12:28:25]

#

Ensin hiiren napsautukset täytyy jotenkin pystyä lukemaan. Jos hiirtä klikkaillaan vain ohjelman omassa ikkunassa, tämä onnistuu helposti MouseDown-tapahtumassa. Mutta jos muutkin painallukset ohjelman ulkopuolella täytyy ottaa lukuun, on käytettävä WinAPIn GetAsyncKeyState-funktiota, joka nimestään huolimatta tarkkailee myös hiirtä. Hiiren koordinaatit taas selviävät GetCursorPos-funktiolla.

Sitten vain tallennat hiiren painalluksia tiedostoon vaikka sitä mukaa, kun niitä tulee. Toinen tapa on kerätä tietty määrä painalluksia taulukkoon, ja tallentaa niitä vähän suuremmissa erissä. VB:n oma hiirenkäsittely ja WinAPIn funktiot kertovat hiiren koordinaatit ja painetun napin. Tämän lisäksi haluat ehkä vielä selvittää painallusten väliajat. Kellonajan saat esim. suoraan Time-funktiolla.

Feel Free [07.04.2005 13:14:28]

#

No noista koordinaateista ei nyt tässä tapauksessa ole hyötyä, mutta kertoisko vielä joke miten tota GetAsyncKeyState -funktiota käyteteen. Ja jokainen klikkas pitäs myös tallentaa suraan tiedostoon

hunajavohveli [07.04.2005 13:20:28]

#

Tähän tapaan...

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub Form_Load()
  Timer1.Interval = 50
End Sub

Private Sub Timer1_Timer()
  Text1.Text = Sgn(GetAsyncKeyState(1))
End Sub

Voit luoda taulukon, josta näet eri näppäinten tilat. Tässä annetaan GetAsyncKeyStatelle parametriksi ykkönen, joka tarkoittaa hiiren vasenta nappia. Tiedostonkäsittelystä löydät tietoa Visual Basic -oppaista sekä ohjelmointikielihakemistosta. Molempiin on linkki oppaissa.

Feel Free [07.04.2005 14:51:57]

#

Okei, alanpa tässä soveltelee tota koodia.

Vastaus

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

Tietoa sivustosta