Miten Visual Basicissa voi tallentaa jokaisen hiiren painalluksen tiedostoon?
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.
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
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.
Okei, alanpa tässä soveltelee tota koodia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.