Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.06.10
Prihlásený: 06.08.13
Príspevky: 42
Témy: 20
Príspevok NapísalOffline : 27.04.2012 22:34

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é?


Offline

Skúsený užívateľ
Skúsený užívateľ
Reakcia na stlacenie klávesy

Registrovaný: 11.01.09
Prihlásený: 18.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 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.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.06.10
Prihlásený: 06.08.13
Príspevky: 42
Témy: 20
Príspevok Napísal autor témyOffline : 27.04.2012 22:42

Aha, pardon... Jazyk C++ Mám Windows 7.


Offline

Skúsený užívateľ
Skúsený užívateľ
Reakcia na stlacenie klávesy

Registrovaný: 11.01.09
Prihlásený: 18.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 24.06.10
Prihlásený: 06.08.13
Príspevky: 42
Témy: 20
Príspevok Napísal autor témyOffline : 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 :shock: . 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().


Odpovedať na tému [ Príspevkov: 5 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. reakcia na stlacenie TAB-u

v JavaScript, VBScript, Ajax

16

1373

26.09.2007 20:44

javo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. stlacenie nedostupneho tlacidla

v Ostatné programy

0

508

22.03.2009 14:34

mitigate Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. stlacenie 3 klavecou

v Externé zariadenia

3

341

16.07.2012 18:57

magic Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. virtualne stlacenie kláves a myši

v Ostatné programy

0

534

30.05.2013 19:22

Theworstangel Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Autorizacia, odhlasenie a stlacenie tlacidla naspat

v PHP, ASP

3

709

13.03.2007 17:58

kuko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Viber sa pustil do Esetu, no reakcia ho zrejme zaskočila

v Novinky

2

610

23.12.2014 20:36

Kraliček Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. INTERNETOVÉ KLÁVESY

v Externé zariadenia

2

688

31.08.2007 10:27

Gps Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Yamaha klávesy

v Kúpim

1

293

13.01.2018 3:01

Eddy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nefunkcne klavesy

v Notebooky a netbooky

2

1111

15.07.2007 21:37

Triplespace Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. [Delphi] klavesy

v Delphi, Visual Basic

15

2059

06.02.2010 13:04

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ako rozobrať klávesy?

v Ostatné

13

5192

04.12.2008 16:45

tommy1104 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Viacnasobne stlacanie klavesy

v Operačné systémy Microsoft

2

369

01.08.2023 0:53

eMp Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Klávesy na klávesnici...

v Externé zariadenia

1

843

11.12.2010 1:15

OmeGa Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. pascal - emulacia stlacenia klavesy

v Assembler, C, C++, Pascal, Java

5

670

13.04.2009 18:18

Holup Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Stisknutí klávesy pomocí programu

v Delphi, Visual Basic

1

569

26.06.2011 12:39

Fico Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Samovolné reagovanie klávesy Backspace

v Externé zariadenia

1

303

11.01.2015 11:34

carl65 Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra