
Delphi stisknuti klaves
Ahoj, potřeboval bych poradit, jak v delphi simulovat stisknuti klaves.
Dam priklad.
Chci aby delphi za me prepinal zalozky v prohlizeci, pomoci kombinace CTRL TAB.. Jak na to?
Urcite ten kod dam do timeru, ale jaky? Nejaky navod? Rada..Diky
Nie je to až také zložité, ale zas ani úplne jednoduché.
Napísané a testované mnou pod DELPHI XE2 na WIN7-64...
Prosim a je mozne toto riesit este globalnejsie takmer az na urovni hardwaru? Mam totiz zopar aplikacii, ktore na simulaciu stlacenia klavesy cez win api vobec nereaguju a pracuju len po fyzickom stlaceni klavesy na klavesnici z coho usudzujem, ze odchytavaju stlacene klavesy nejako priamo a nie cez keydown a keyup systemu. Ako by sa to dalo teda este inak riesit? Vdaka
Ide o aplikácie typu audio games čo sú hry pre zrakovo postihnutých. Celkovo ich nie je veľa a tie čo sú, sú spravidla pre klávesnicu, preto som si urobil v Delphi utilitku, ktorá cez delphix odchytáva polohu páky a tlačidiel jojstycku a podla nich simuluje stláčanie kláves, takže nevidomý si môže zahrať audiohru s jojstyckom, hoci táto pôvodne preň nemá podporu. Audiohry, ktoré používajú Directx ako napríklad Super egg hunt
seh.php
idú bez problémov, no spravidla je u nich ten problém, že kolidujú s čítačmi obrazoviek, ktoré nevidiaci používajú, preto pri ich hraní treba čítač vypnúť, aby neblokoval klávesnicu. Novšie hry sa túto kolíziu snažia riešiť, preto u nich už netreba vypínať čítač obrazovky, no nereagujú ani na správy z windows. Javia sa, ako keby priamo odchytávali stlačené klávesy a nič iné si nevšímali, takže ani globálne povely čítača obrazovky ako je prečítanie titulku okna alebo len aktuálneho času nefungujú a nereagujú ani na simulované stlačenie klávesnice. Príkladom je napr. Slide
free.php
ale aj mnohé iné inak veľmi dobré akčné audiohry. Možno o tom ani neviete ale aj bez zraku je možné bojovať so zombíkmi, plniť misie v leteckom simulátore alebo si zahrať audioverziu Slendermanna. Hrať ich ale s jojstyckom je trochu iné ako s klávesnicou, preto som sa pokúšal riešiť tento problém no cez keybevent to evidentne nepôjde a možno niečo také ako Arduino o ktorom písal Gilhad by bolo riešením, kedy by aplikácia pracovala až na úrovni emulátora hardwaru. No neviem či som na Arduino dorástol, takže každý nápad uvítam a vopred ďakujem.
Jestli jsi z Prahy a okoli (nebo obcas mas cestu) tak ti muzu ukazat jak snadno se s takovym Arduinem dela (i kdyz misto Una bych spis pouzil Mini/Mikro, ktere je kompaktnejsi a pro tento ucel vhodnejsi, nebo rovnou navrhnul desku s ATMEL procesorem) - porad se pohybujeme v radu nizkych stokorun.
U toho joystiku patrne staci nekolik pismen na kazdou osu (trochu dopredu=A, vic dopredu=B, uplne dopredu = C, nebo tak nejak) takze se da do nej celkem snadno napichnout dovnitr vlastnimi draty (a obejit jeho USB interface) a pak to zapojeni je slozite asi tak jako to na obrazku - par odporu, par dratu, misto spinacu ten joystick.
Uz jsem se takhle "vlamal" do gamepadu a naprosto v pohode ho upravil k obrazu svemu (jenze tam slo o opacny problem - prevest 9 tlacitek na desce 1x1 metr na USB zarizeni snadno a rychle, pro ucely hrani Stepmanie).
S takovymhle projektem pomuzu velice rad
(kontakt na me mas v poste)
jeej vdaka za ponuku To sa ale ak tomu spravne rozumiem pohybujeme na urovni hardwaru, teda kable a fyzicka uprava zariadenia. . Neslo by ale iba softwarovo simulovat hardware? Teda klavesnicu? Tejto oblasti az tak moc nerozumiem preto sa tak blbo pytam :d ale ak mam napr bluetoth klavesnicu a stlacim sipku, system dostane spravu, ze bola stlacena sipka. Pokusal som sa najst nieco o tom, ci nie je mozne napr cez nejaky virtualny port programovat virtualny hardware aby sprava ze bola stlacena sipka do systemu dorazila rovnako ako ked dorazi z usb portu alebo z bluetoth zariadenia.
mluvil jsem s kamaradem, rikal, ze ti mam rict, at se podivas na joy2key (ja sam ho neznam a dodnes jsem o nem neslysel, tak jen predavam)
Tak ten Joy2key je uplne skvely uz som ho aj kupil. Je to presne to co som chcel sam programovat a funguje to uplne vsade takze vdaka Tebe som usetril kopu casu. Vdaka.