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

Jaka jest komęda do blokowania klawiszy w c++

Cloud VPS
–1 głos
1,308 wizyt
pytanie zadane 23 lipca 2015 w C i C++ przez Michu99 Użytkownik (820 p.)
Czy mógł by mi ktoś pomuc napisać program do blokowania klawiszy (w grach się przyda) chcę blokować klawisz windows i skrót Alt+Ctrl+Del lub podać samą komęde na blokowanie ale wolał bym program bo jestem początkujący w c++. Z góry dzięki za pomoc

3 odpowiedzi

0 głosów
odpowiedź 23 lipca 2015 przez Patrycjerz Mędrzec (192,320 p.)
Moim zdaniem nie jest to potrzebne, a nawet będzie czynić to problemy. Uniemożliwi to np. wygodne wyjście z twojej gry, gdy się zawiesi itp. Mi na przykład często klawisz Windows pomógł, gdy się gra zawiesiła i nie mogłem wyjść do pulpitu, o Menedżerze Zadań, którego chcesz zablokować nie wspomnę :)
komentarz 24 lipca 2015 przez Michu99 Użytkownik (820 p.)
jak się ma klawiature z programowanymi klawiszami to skrót do wyłączenia ma się na klawiaturze :)
0 głosów
odpowiedź 23 lipca 2015 przez Pinio Gaduła (3,520 p.)
żadna profesionalna gra nie zabezpiecza sie przed takimi uzyciami wiec widocznie cos skopales w samej logice gry skoro martwia Cie te przyciski
komentarz 24 lipca 2015 przez Michu99 Użytkownik (820 p.)
gra nie ale np lgs już tak ( to program do obsługi produktów logitecha ma tryb gry który włącza blokowanie klawiszy)
–1 głos
odpowiedź 23 lipca 2015 przez hit02 Nałogowiec (33,970 p.)

Możesz użyć czegoś takiego, jak haki z WinAPI: http://cpp0x.pl/kursy/Kurs-WinAPI-C++/Zaawansowane/Haki/199

To pozwoli ci przechwycić np. Alt+F4, ale Alt+Ctrl+Del już nie. Windows jest zabezpieczony przed tego typu trickami. Co do klawisza Win, to nie pamiętam, jak się Haki zachowywały.

komentarz 24 lipca 2015 przez Michu99 Użytkownik (820 p.)
a mugłbyś mi podać cały kod bo kopiowałem i wklejałem tamte fragmęty i wyskakiwał bug przy słowie kluczowym każdej linijki (robiłem jako console aplication w code block)
komentarz 24 lipca 2015 przez hit02 Nałogowiec (33,970 p.)

Z tym już powinieneś sobie poradzić. Escape wyłącza blokowanie klawiatury.

#include <stdio.h>
#include <windows.h>

#define UNUSED(x) ((void)(x))

int diseableHook = 0;

LRESULT CALLBACK hookProc( int code, WPARAM wParam, LPARAM lParam )
{  
	UNUSED(code);
	UNUSED(lParam);
	if(wParam == VK_ESCAPE)
		diseableHook = 1;
    return 1;
}

int main()
{
	HHOOK hook = SetWindowsHookEx(WH_KEYBOARD, hookProc, GetModuleHandle(NULL), 0);
	if(hook == NULL)
	{
		printf("Can't create hook! Errorcode: %i", GetLastError());
		return 1;
	}
	while(diseableHook == 0)
	{
		Sleep(100);
	}
	UnhookWindowsHookEx(hook);
	return 0;
}

Jeszcze drobne wyjaśnienie do wywołania GetModuleHandle(NULL). W tym miejscu funkcja SetWindowsHookEx() przyjmuje uchwyt do modułu, w którym znajduje się procedura obsługi haka i w dokumentacji znajdziesz, że ma to być DLL, ale ponieważ między DLL, a EXE jest bardzo mała różnica, to procedurę umieściłem w EXE i podałem uchwyt do niego. cheeky

komentarz 24 lipca 2015 przez Michu99 Użytkownik (820 p.)
program się odpala ale nie działa nic nie blokuje a jedyne co działa to zamknięcie na dowolny klawisz
komentarz 24 lipca 2015 przez hit02 Nałogowiec (33,970 p.)
To bardzo ciekawe, bo u mnie nic nie da się klknąc.

Podobne pytania

0 głosów
1 odpowiedź 207 wizyt
pytanie zadane 18 marca 2018 w C i C++ przez Igor Użytkownik (740 p.)
0 głosów
0 odpowiedzi 242 wizyt
0 głosów
0 odpowiedzi 132 wizyt
pytanie zadane 22 czerwca 2019 w Offtop przez Xarti Obywatel (1,380 p.)

93,463 zapytań

142,459 odpowiedzi

322,728 komentarzy

62,842 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
...