| | |
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 24.06.10 Prihlásený: 06.08.13 Príspevky: 42 Témy: 20 |
Dobrý deň.
Chcel by som sa spýtať, ako by bolo možné vytvoriť program, ktorý by bežal - vykonával nejakú činnosť - ale po stlačení konkrétnej klávesy by túto činnosť zastavil, resp. preskočil. V podstate ma zaujíma, či je možné počas nejakého procesu zároveň odsledovať, kedy to uživateľ chce zastaviť.
Napríklad mám ak cyklus, ktorý sa síce opakuje ale v istých prípadoch sa ho rozhodnem klávesou zrušiť už za behu cyklu...
Je niečo také možné?
|
|
Registrovaný: 11.01.09 Prihlásený: 18.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 27.04.2012 22:38 | |
|
Da sa to. Aky jazyk? Aky operacny system?
_________________ Ak potrebujete pomoc s diagnostikou/opravou vasej elektroniky ( notebook, motherboard, GPU, a ine ), kontaktujte ma cez SS. |
|
Registrovaný: 24.06.10 Prihlásený: 06.08.13 Príspevky: 42 Témy: 20 | Napísal autor témy Gresthorn: 27.04.2012 22:42 | |
|
Aha, pardon... Jazyk C++ Mám Windows 7.
|
|
Registrovaný: 11.01.09 Prihlásený: 18.04.24 Príspevky: 1385 Témy: 9 Bydlisko: Hrinova | Napísal Fico: 27.04.2012 22:59 | |
|
Dalo by sa to riesit napriklad dvoma sposobmi ( ktore ma teraz napadaju ):
1.) existuje na to presne riesenie a to pomocou globalnych hakov ( global hooks ). V pripade keyboard hooks ide o odchytavanie stalcenych klavesov v systeme a nasledne analyzovanie, ci je to potrebny klaves, ci bol stlaceny alebo uvolneny, atd. Je to ale trocha komplikovanejsie riesenie a ak o tom pocujes prvy krat, radsej si o tom este nieco precitaj. Priklad najdes tuna:
- http://msdn.microsoft.com/en-us/library/windows/desktop/ms644960(v=vs.85).aspx#installing_releasing
Pouzivaju sa funkcie SetWindowsHookEx s parametrom WH_KEYBOARD, CallNextHookEx a na uvolnenie UnhookWindowsHookEx
- uznavam, ze priklad je troska komplikovanejsi, tak si skus vygooglit nieco jednoduchsie a ak si nebudes vediet dat rady, tak sa ozvi, napisem ti ja nejaky jednoduchy priklad
2.) druhy sposob je sice jednoduchsi, ale troska neprofesionalnejsi a mozno aj nepresnejsi: Vytvoris si druhe vlakno, pripadne timer, v ktoreho tele budes pomocou funkcie GetKeyState kontrolovat, ci nebol stlaceny pozadovany klaves a nasledne vykonas pozadavonu operaciu. Tento sposob je, ako som spomenul, jednoduchsi, no je nutne mat nejaku schopnu casovu medzeru v pripade timeru ( povedzme 10-20 ms, nizsi cas by uz mohol zbytocne vela vytazovat procesor ) a v pripade vlakna taktiez podobny cas, akurat v cakacom prikaze ( sleep alebo podobny prikaz ).
Takze si uz len vyber sposob, ktory by ti viac vyhovoal - v zasade haky ( hooks ) su komplexnejsie a zaznamenas pomocou nich akykolvek klaves. Je ale nutne mat obsluzny kod tohto haku v DLL kniznici, kedze sa jedna o globalnu operaciu v celom systeme, nie len v tvojej aplikacii.
|
|
Registrovaný: 24.06.10 Prihlásený: 06.08.13 Príspevky: 42 Témy: 20 | Napísal autor témy Gresthorn: 28.04.2012 16:29 | |
|
Vďaka... Ohľadom hakov som zatiaľ nepočul skoro nič a ako som si to tak prezeral tak momentálne je to pre mňa pomerne obtiažne riešenie . Ale aspoň o nich budem do budúcna vedieť a pravdepodobne sa k tomu vrátim. Ten druhý spôsob mi funguje vynikajúco a zatiaľ postačuje, takže som to vyriešil pomocou GetKeyState().
|
|
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| reakcia na stlacenie TAB-u v JavaScript, VBScript, Ajax | 16 | 1373 | 26.09.2007 20:44 javo | | stlacenie nedostupneho tlacidla v Ostatné programy | 0 | 508 | 22.03.2009 14:34 mitigate | | stlacenie 3 klavecou v Externé zariadenia | 3 | 341 | 16.07.2012 18:57 magic | | virtualne stlacenie kláves a myši v Ostatné programy | 0 | 534 | 30.05.2013 19:22 Theworstangel | | Autorizacia, odhlasenie a stlacenie tlacidla naspat v PHP, ASP | 3 | 709 | 13.03.2007 17:58 kuko | | Viber sa pustil do Esetu, no reakcia ho zrejme zaskočila v Novinky | 2 | 610 | 23.12.2014 20:36 Kraliček | | INTERNETOVÉ KLÁVESY v Externé zariadenia | 2 | 688 | 31.08.2007 10:27 Gps | | Yamaha klávesy v Kúpim | 1 | 293 | 13.01.2018 3:01 Eddy | | nefunkcne klavesy v Notebooky a netbooky | 2 | 1111 | 15.07.2007 21:37 Triplespace | | [Delphi] klavesy v Delphi, Visual Basic | 15 | 2059 | 06.02.2010 13:04 Fico | | Ako rozobrať klávesy? v Ostatné | 13 | 5192 | 04.12.2008 16:45 tommy1104 | | Viacnasobne stlacanie klavesy v Operačné systémy Microsoft | 2 | 369 | 01.08.2023 0:53 eMp | | Klávesy na klávesnici... v Externé zariadenia | 1 | 843 | 11.12.2010 1:15 OmeGa | | pascal - emulacia stlacenia klavesy v Assembler, C, C++, Pascal, Java | 5 | 670 | 13.04.2009 18:18 Holup | | Stisknutí klávesy pomocí programu v Delphi, Visual Basic | 1 | 569 | 26.06.2011 12:39 Fico | | Samovolné reagovanie klávesy Backspace v Externé zariadenia | 1 | 303 | 11.01.2015 11:34 carl65 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|