• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Usuwanie przerwy czasowej po naciśnięciu dowolnego klawisza w konsoli

Cloud VPS
0 głosów
373 wizyt
pytanie zadane 8 maja 2016 w C i C++ przez sim_sony Początkujący (310 p.)
Witam, aktualnie tworze programy uruchamiane windowsową konsolą. Jak wiadomo, jeżeli naciśniemy przykładowy klawisz 'x', to program wypisze jedną literę, odczeka chwilę, po czym zacznie wypisywać ciąg liter do chwili kiedy przycisk na klawiaturze zostanie zwolniony.

Czy można pozbyć się czekania na przycisk? Tzn w chwili gdy naciśniemy klawisz, to program od razu zacznie wypisywać ciąg liter.

Z góry dziękuje za pomoc.

2 odpowiedzi

+2 głosów
odpowiedź 8 maja 2016 przez Patrycjerz Mędrzec (192,320 p.)
wybrane 8 maja 2016 przez sim_sony
 
Najlepsza

Możesz się bezpośrednio odwołać do bufora klawiatury za pomocą funkcji GetAsyncKeyState z windows.hhttps://msdn.microsoft.com/pl-pl/library/windows/desktop/ms646293(v=vs.85).aspx.

A tutaj lista klawiszy: https://msdn.microsoft.com/pl-pl/library/windows/desktop/dd375731(v=vs.85).aspx.

0 głosów
odpowiedź 8 maja 2016 przez Barus Stary wyjadacz (14,120 p.)
Nie rozumiem za bardzo o co Ci chodzi. Chodzi Ci o "system("pause");", "getchar()" itp ? Rozwiń to pytanie.
komentarz 8 maja 2016 przez Patrycjerz Mędrzec (192,320 p.)
Włącz jakikolwiek edytor tekstu, przytrzymaj jakikolwiek klawisz i zobacz, co się dzieje z karetką.
komentarz 8 maja 2016 przez MetGang Nałogowiec (34,360 p.)
Otwórz cmd, przytrzymaj jakiś klawisz. Najpierw wypisze Ci 1 znak i po jakiejś 0.5s zacznie wypisywać ciąg danego znaku dopóty, dopóki nie zwolnisz klawisza. Oto chodziło autorowi. Jest to raczej kwestia systemu/klawiatury i nie jest do ominięcia.
komentarz 8 maja 2016 przez Barus Stary wyjadacz (14,120 p.)
Aha.. Faktycznie u mnie akurat "nie tnie", ale znam ten ból bo jeszcze rok temu programowałem na czteroletnim lapku...
Do autora : Zależy co chcesz zrobić. Jeżeli masz przykładowo menu z wyborem to jeśli odpowiednio użyjesz instrukcji switch to program "pójdzie" dalej po naciśnięciu dowolnego klawisza od razu.
komentarz 8 maja 2016 przez sim_sony Początkujący (310 p.)
Chodzi o poruszanie 'postacią' po oknie konsoli (góra, dół, prawo, lewo). Gdyby zlikwidować tą przerwę, to po przytrzymaniu przycisku ruchu postać poruszałaby się 'płynniej'.
1
komentarz 8 maja 2016 przez draghan VIP (106,230 p.)

Barus: Faktycznie u mnie akurat "nie tnie", ale znam ten ból bo jeszcze rok temu programowałem na czteroletnim lapku...

To nie jest kwestia wydajności sprzętu, tylko celowego opóźnienia, wprowadzanego przez system operacyjny. Trochę do poczytania: http://www.dummies.com/how-to/content/set-your-keyboards-repeat-delay-and-repeat-rate.html

komentarz 8 maja 2016 przez Barus Stary wyjadacz (14,120 p.)
Masz rację, codziennie można się czegoś nauczyć :) Dziękuję.

Pozdrawiam!

Podobne pytania

0 głosów
1 odpowiedź 322 wizyt
0 głosów
3 odpowiedzi 397 wizyt
pytanie zadane 15 września 2019 w Sprzęt komputerowy przez Kesas Nowicjusz (200 p.)
0 głosów
2 odpowiedzi 501 wizyt

93,487 zapytań

142,420 odpowiedzi

322,772 komentarzy

62,905 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...