Dá se nějak ,,stiskout" klávesa místo uživatele? Jako třeba aby se automaticky vložil text ze chránky, nebo ,,stisklo" ctrl + alt + del... Konkrétně potřebuju kombinaci ALT + Enter. Díky...
Fórum › C / C++
C++ emulace stisknutí kláves
Simulovať akcie uživateľa ? No tak možno nejakym konkretnym posielanim sprav v API. Počul som niečo aj o zapisovani do buffera klavesnice.
Ale, <alt>+ enter ? to sa často použiva na fullscreen. chceš ho pre svoju aplikaciu, alebo ho vyvolať v inej ?
souhlasim se zelenac, o ty klavesy se vubec neni treba starat. kdyby si chtel 'nasimulovat' stisk klavesy, slo by to dost ztuha (pokud by si skutecne chtel vyslat signal na hardwareove urovni o stisku klavesy). prepnuti do full screenu se lisi v zavislosti na pouzitem API.
jestlize uzivas winapi (predpokladam:( ... ) tak se podivej na http://msdn.microsoft.com/library/ ... myslim ze to bude nejaka metoda tridy okna typu put_FullScreen nebo set_FullScreen, pripadne to muzes rovnou fullscreenove vytvorit nejakym makrem ...
A PROC??? K cemu to potrebujes? Napis sem, ceho chces dosahnout a urcite ti nekdo poradi lepsi reseni!
Jinak bych rekl, ze existuje nekolik zpusobu, jak donutit program, aby si myslel, ze uzivatel stikl klavesu. Jednak ji uzivatel (nebo treba robot) doopravdy muze stisknout. Dale muzes do klavesnice nasadit "stenici", ktera bude vysilat signaly i bez stisku klaves. Treti moznost je prepsat ovladace. Ctvrta moznost (druha nejjednodussi - i kdyz vyznat se v assembleru...) je prepsat program.
prinutit program a vyslat hardwarovy signal je neco jineho. jde o to na jake urovni myslis prinutit program. vetsinou, kdyz program pises ty, tak ti to je (jak rekl zelenac ) jedno protoze TY obsluhujes udalost stisku klavesy, a nasimulujes to jen tak ze provedes ten blok prikazu ktery by nasledoval po stisku te klavesy . pokud by si chtel ale prinutit jiz napsany program aby reagoval na stisk klavesy, musis to delat pres OS a to neni jednoduchy, priznam se ze tohle bych moc netusil. asi by to chtelo podivat se do implementace funkci ktery programy vyuzivaji pro detekci stisku klaves a zjistit odkud ty signaly berou (asi nejakej buffer ci co) a pak do nej zkusit psat: ovsem nevim jestli by ti neco takovyho OS povolil. treba nato bude nejaka API funkce, nevim. ale ve standardu jazyka C nic takovyho neni
To Zelenáč : Je to len myslienka, :smile1: ako v cykle zaznamenat stlacenie klavesy. Keby si program myslel ze uzivatel drzi klavesu enter, tak by sa cyklus vykonaval a zaroven by uzivatel mohol aj zadat vstup z klavesnice => chcem aby program cital vstup z klavesnice a zaroven vykonaval urcity cyklus.
Pokud by si program myslel, ze je stlaceny ENETER
A byl by stlaceny? Pokud ano, imho by uz klavesnice nereagovala na ostatni tlacitka. Pokud ne... Zkratka to nebudes zjistovat!
Nemam s tim zadne zkusenosti, ale na ten druhy problem by se AFAIK daly pouzit napr. "thready" v SDL..
jestli chces aby program vykonaval urcity cyklus a zaroven cetl vstup tak takhle to urcite nevyresis). to by se dalo resit spis tak ze bys nechal cyklus a na jeho konci bys resil jestli byla nejaka klavesa stisknuta, a v pripade ze by to byl znak pridal bys ho na konec nejakeho pole charu ktere by nakonec obsahovalo cely vstup. to je ale reseni ne uplne efektivni pokud bude cyklus trvat prilis dlouho nebo bude uzivatel psat prilis rychle: pak by se mohlo stat ze nejaky stisk klavesy neregistrujes. to by bylo lepsi udelat treba aplikaci multivlaknovou a nechat jedno vlakno at resi cyklus a druhe at zpracovava vstup klasicky. zalezi to taky co by v tom cyklu bylo: v pripade nejake neblokovaci funkce by si ten vstup mohl resit klasicky.
to by se dalo resit spis tak ze bys nechal cyklus a na jeho konci bys resil jestli byla nejaka klavesa stisknuta
Pomocou akeho prikazu program zisti ci bola stlacena nejaka klavesa?? (samozrejme bez toho aby musel uzivatel stlacit Enter)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Java ME, EclipseME, nespustí se emulace — založil jadus
Odchycení stisknutí tlačítka — založil Jiří Sokolovský
Zjištění stisknutí klávesy — založil Garret Raziel
Akce po stisknutí MaximizeBox — založil Andy
Konzole, akce po stisknutí tlačítka [x] — založil Jouker
Moderátoři diskuze