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 SubNojaa, 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