Kirjoittaja: sooda
Kirjoitettu: 31.05.2004 – 31.05.2004
Tagit: koodi näytille, vinkki
Tämä löytyy muualtakin haulla, mutta tässä on nyt kaikki samassa paketissa esimerkkien kanssa :P eli GetAsyncKeyState-apin käyttö. Tämä näkee napinpainallukset edellisen kutsun jälkeen ja onko joku tietty nappula pohjassa. Ohjelmalla ei tarvitse olla fokusta.
GetAsyncKeyState infoa: http://msdn.microsoft.com/library/default.asp?
ja sen käyttämät arvot napeille: http://msdn.microsoft.com/library/default.asp?
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Public Function NappiPohjassa(Nappi As Long) 'jos funktion palautusarvon eniten merkitsevä bitti on päällä, 'nappi on tällä hetkellä pohjassa NappiPohjassa = GetAsyncKeyState(Nappi) And &H8000 End Function Public Function NappiPainettu(Nappi As Long) 'jos funktion palautusarvon vähiten merkitsevä bitti on päällä, 'nappia on painettu viime GetAsyncKeyState funkkarin kutsun jälkeen NappiPainettu = GetAsyncKeyState(Nappi) And 1 End Function Private Sub Form_Load() Show NappiPainettu (&H10) 'preventtaa sen, että jos ennen ohjelman käynnistymistä on painanut Do DoEvents If NappiPainettu(&H10) Then Print "Paiväee!!" 'shifti moikkaa :D If NappiPohjassa(&H11) Then Left = Left + 1 'controlli siirtää oikealle ilman viivettä (vertaa edelliseen pitäen nappi pohjassa) If NappiPohjassa(&H12) Then Top = Top + 1 'altti tiputtaa If Left + Width > Screen.Width Then Left = 0 'reunan yli? If Top + Height > Screen.Height Then Top = 0 'alareunan yli? Loop End Sub Private Sub Form_Unload(Cancel As Integer) End 'ettei tiltata form_loadissa olevaan looppiin End Sub
Nojaa, kiva... :D
Ihan kätevä, itse en koskaan olekkaan getasynstatea käyttää.
Aika kätsy, pitää sanoo.
Hyötyä monelle!
Ihan jees, mainittakoon vielä että GetAsyncKeyState on sitten globaali siinä mielessä että ikkunalla ei tarvitse olla fokusta jotta se tietäisi mitä näppäimiä on painettu. Tämä ei siis välttämättä aina ole se järkevin ratkaisu näppäinten tarkkailuun.
ja jollain tavalla siten myös todella hyvä näppäinten tarkkailuväline, esin Ghost key loggeria tehtäessä, jonka muuten tämän avulla väsäsin.
mites sais funktionäppäimet ja escin? olen tekemässä tietokoneella pianoa :D