[API] keybd_event - virtual key codes

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Magicmaster 5. 11. 2009 11:18

Zdravim,
posílám stisky kláves do aplikace přes keybd_event. Hlavním parametrem je virtuální znak klávesy, kterou chci poslat. Našel jsem seznam těchto kódů, ale znaky jako ?!§ apod tam nejsou. Otazník jsem zkoušel obejít takto
Kód: Vybrat vše
keybd_event(VK_SHIFT,0,0,0);
keybd_event(97,0,0,0);
keybd_event(97,0,2,0);
keybd_event(VK_SHIFT,0,2,0);

Kdy bych simuloval držení shiftu a následný stisk čárky, nicméně nevyšlo to. Jak tedy posílat tyto "neklasické" znaky? :hm
Magicmaster
Junior
Uživatelský avatar

Odeslat příspěvekod Epe 5. 11. 2009 11:31

taky jsem to "resil" pred par dny... Ovsem "nevyresil" ;)
kdyby nahodou pomohlo: http://www.codeproject.com/KB/system/keyboard.aspx
Epe
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod peter.ntx 5. 11. 2009 16:01

no resit to asi nepude tak jednoducho pac to tusim neco filtruje ale kazdopadne

pokud by si potreboval posilat znaky jen do jedne aplikace muzes skusit :

Kód: Vybrat vše
SendMessage(Handle,WM_KeyDown,CisloZnaku,0);
SendMessage(Handle,WM_KeyUp,CisloZnaku,0);
Ja vim pisu kravini ale co nadelam
peter.ntx
Junior

Odeslat příspěvekod HiroSK 5. 11. 2009 16:14

Magicmaster, mal by si si uvedomit, ze posielas stlacenie urcitej klavesy. Neposielas odoslanie nejakeho ASCII znaku.
AMD Athlon 64 X2 4200+, 4x1GB DDR II 800MHz, Asus M2N-E 570Ultra, Creative X-Fi Fatality, Asus 8600GT, Seagate 750+320+200+120GB
Thermaltake MatrixVX VD3000BWA, Asus A-45GA 450W, Scythe SCKM-1000, Noctua NH-U12F
Samsung 226BW, Logitech G15 + G5
HiroSK
Junior
Uživatelský avatar

Odeslat příspěvekod Magicmaster 5. 11. 2009 21:22

To jsem si uvedomil. Proto jsem zkousel posilat:
Kód: Vybrat vše
Stlaceni shiftu
Stlaceni tlacitka carky (shift+tlacitko carky = "?")
Pusteni tlacitka carky
Pusteni shiftu

A jestlize posilam stisky klaves, nemely by byt pokryty vsechny klavesy na klavesnici?
Magicmaster
Junior
Uživatelský avatar

Odeslat příspěvekod HiroSK 6. 11. 2009 14:16

Takto by to nemal byt problem, ale klavesnica musi byt prepnuta na SK/CZ rozlozenie klaves. Inak dostanes znak "<".
AMD Athlon 64 X2 4200+, 4x1GB DDR II 800MHz, Asus M2N-E 570Ultra, Creative X-Fi Fatality, Asus 8600GT, Seagate 750+320+200+120GB
Thermaltake MatrixVX VD3000BWA, Asus A-45GA 450W, Scythe SCKM-1000, Noctua NH-U12F
Samsung 226BW, Logitech G15 + G5
HiroSK
Junior
Uživatelský avatar

Odeslat příspěvekod buben 22. 12. 2009 18:59

Dobry den,
nevite nahodou nekdo, jak zjistit handle aktualne aktivni aplikace? Jako ze kdyz zrovna pracuji ve wordu, aby se do promenne handle priradil Word apod... Proste aby se to stalo univerzalnejsi, aby se mi vzdy do handle priradilo aktivni okno...

Dekuji
buben
Junior

Odeslat příspěvekod Magicmaster 24. 12. 2009 13:57

@buben - funkcí GetForegroundWindow
Magicmaster
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků