void SendKeys(char *keys) { int pituus = strlen(keys); for(int i = 0; i < pituus; i = i + 1) { keybd_event(keys[i],keys[i],0,0); } }
ton tarkotushan olis kirjottaa tekstiä johonkin toiseen ohjelmaan mut se kirjottaa vaan jotain merkkisotkua, eli mites ton sais toimimaan?
Asiaa auttaisi suuresti, jos kertoisit myös mitä tuo keyb_event tekee tai laittaisit senkin koodin tänne. Muuten on melko hankala arvuutella.
Edit - Blaze valaisikin minua jo. Voisi auttaa, jos joku WinApia tunteva laittaisi tähän topikkiin hieman tietoa tuon keyb_event:n parametreista.
keyb_event on WinApin funktio.
Muokkausaikakin lopahti. Juicen antamasta linkistä löytyy esimerkki, josta selviää hyödyllisiä asioiota; mm. se, että kannattaa myös vapauttaa se simuloitu näppäin.
keyb_event(keys[i], 0, KEYEVENTF_KEYUP, 0);
Toisekseen, se toinen parametri on hardware scancode. En sitten tiedä mitä siihen pitäisi laittaa, ainakin tuossa esimerkissä siinä oli 0 joka merkille?
no joo mut erikoismerkit ei silti toimi.
Mitkä erikoismerkit? Jos katsot tuosta esimerkistä, niin niihin pitää laittaa lisäksi se extended-lippu päälle.
Lukekaa kuvaus mieluumin suoraan MSDN:stä. Sen mukaan kakkosparametria ei käytetä, ja tässä varmaankin kannattaa luottaa Microsoftiin.
Ongelma on varmaankin siinä, että virtuaaliset näppäinkoodit eivät ole samat kuin kirjainten ASCII-arvot. Koko teksti pitää siis muuttaa sopivaksi. Lisäksi isoja ja pieniä kirjaimia ei voi erottaa toisistaan näppäinkoodin perusteella, vaan pitää "painaa" shiftiä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.