Eli onko globaalia funktiota tarkkailemaan sitä onko näppäimistössä yleensäkkään mitään näppäintä painettu.
For np=65 to 90 if GetAsyncKeyState(np) then... Next np
tällainen ei ole se mitä etsin...
Funktion siis pitää toimia samalla tavalla kuin GetAsyncKeyState(), mutta se ei kerro mikä näppäin on painettu vaan kertoo onko näppäimistöä painettu.
Menipä hankalaksi selittää.
Simppelisti vaan KeyDown-tapahtumalla.
Onko se muka globaali... minusta ikkunan pitää olla aktiivinen, jotta se toimisi. Mutta jos tarkoitat jotain muuta kuin
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) End Sub
niin voitko antaa jonkinlaista koodin pätkää.
Koska tuo äskeinen koodi ei toimi, jos ikkuna ei oo aktiivinen.
Haetko jotain tämmöistä?
https://www.ohjelmointiputka.net/koodivinkit/
Minä sanoin ensimmäisessä vietissä, että GetAsyncKeyState() -funktiolla en tee tässä nytten mitään. Joten en hae.
Ellei sitten GetAsyncKeyState() -funktiota jotenkin muokata siten, että se ei ole riippuvainen yhdestä ainoasta näppäimestä vaan se vaan kahtoo yleensäkkin, että onko mikään näppäin painettu, ilman For-Next komentoa.
EDIT:
Ja tuo metabolixin vinkki on sama, kuin
For np=65 to 90 if GetAsyncKeyState(np) then goto drop Next np drop:
ja tästä ei ole mitään hyötyä...
Tämä minun pointti on tainnut mennä ohi. Tällaista haen.
if NappiPainettu then ... tee jotain ... end if
ja tuon NappiPainettu -funktion pitää vain tietää onko näppäimistöä räimitty. Eli sitä ei kiinnosta onko se näppäin a vai ö, vaan sitä vaan kiinnostaa, jos näppäimistöllä on jotain elämää.
Nuo For-Next ja Do While-Loop jutut vie liikaa tehoja, jos niitä pyörittää kokoajan. Siispä minulla pitäisi olla sellainen funktiota, joka tietää milloin näppäimistöä on painettu ja vasta sitten selvittää mitä näppäintä on painettu. Tällä tavalla minun ei pitäisi koko aikaa pyörittää hirveen raskasta silmukkaa.
No miksei for-silmukka kelpaa?
Voithan tietenkin hakea koko näppäimistön GetKeyboardState-funktiolla ja katsoa sitten for-silmukassa, onko jokin alhaalla, mutta samahan se sinänsä on. Tee vaikka oma funktio, jossa silmukka on, niin voit aina käyttää sitä.
Miten tuota GetKeyboardState-funktiota käytetään. Onko se sellainen, että palauttaa 1, jos nappi on painettu ja 0, jos ei? Jos sais jotain vinkkejä sen käytössä.
GetKeyBoardState auttaa asiaa. Käyttö:
Public Declare Function GetKeyboardState Lib "user32" Alias "GetKeyboardState" (pbKeyState As Byte) As Long Dim Tila(255) As Byte GetKeyboardState(Tila(0))
Sitten vain looppaat Tila arrayn lävitse ja tiedät jokaisen näppäimen tilan.
Muoks Nyt aloin epäillä, että tässä on jokin virhe. Joten testailen... (tein nopeasti testaamatta tuon linkittämäni sivun pohjalta)
Muoks #2 128 ja 129 merkkaa sitä, että jokin näppäin on pohjassa. 0 ja 1 taas sitä, että näppäintä ei paineta. Ts. looppaat tarkistaen arrayn siten, onko luku isompi kuin 127 ja tiedät onko mitään painettu.
Muoks #3 Ja joo, tässä ehti näeämmä tapahtua asiaa kun kirjoittelin viestin pidemmällä aikavälillä. Eli aloin kirjoittamaan viestiä ennen kuin kukaan vinkkasi mitään GetKeyboardStatesta.
Edelliseen kysymykseen: http://www.google.fi/search?q=GetKeyboardState
Aihe on jo aika vanha, joten et voi enää vastata siihen.