C# blokování kláves – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# blokování kláves – .NET – Fórum – Programujte.comC# blokování kláves – .NET – Fórum – Programujte.com

 

Tomáš
~ Anonymní uživatel
560 příspěvků
27. 4. 2014   #1
-
0
-

Ahoj, potřeboval bych poradit. Potřebuji na Stisknutí klávesy A zablokovat klávesu B a naopak. Nevíte někdo ?

Nahlásit jako SPAM
IP: 78.157.167.–
Radek Chalupa
~ Redaktor
+1
Super člen
27. 4. 2014   #2
-
0
-

#1 Tomáš
Hlavně asi nevíme co přesně chceš...  

Zablokovat tu klávesu jen v tvojí aplikaci nebo v celém systému? Zablokovat ji až do stisku další klávesy, nebo do konce běhu aplikace, nebo systému...

Radek Chalupa 
- individuální konzultace, školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC) 
- vývoj software na zakázku 
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 89.177.51.–
Tomáš
~ Anonymní uživatel
560 příspěvků
28. 4. 2014   #3
-
0
-

#2 Radek Chalupa
Pouze v aplikaci.. A mám myslím to takhle.. Na začátku aplikace by měli být zablokované klávesy A i B, po stisku Enteru se v aplikaci odblokují obě dvě.. A po stisknutí A nebo B se v aplikace zablokuje ta klávesa, která nebyla stisklá..

Nahlásit jako SPAM
IP: 85.135.6.–
Radek Chalupa
~ Redaktor
+1
Super člen
28. 4. 2014   #4
-
0
-

#3 Tomáš
Nejspíš si přepsat metodu WndProc (u všech formulářů které mají klávesový vstup) a tam testovat Msg na WM_KEYDOWN, WM_KEYUP (jejich konkrétní čísla najdeš ve windows.h, nebo napíšeš do c++ kódu a najedeš myší)  a při jejich zachycení testovat wparam (to je kód virt. klávesy) a při zjištění těch které chceš blokovat nevolat base.WndProc.

Radek Chalupa 
- individuální konzultace, školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC) 
- vývoj software na zakázku 
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 89.177.51.–
hauz0
Duch
28. 4. 2014   #5
-
0
-

#4 Radek Chalupa
A přes nějakou podmínku by to nešlo?

Nahlásit jako SPAM
IP: 85.135.6.–
hauz0
Duch
29. 4. 2014   #6
-
0
-

Vyřešeno   

Nahlásit jako SPAM
IP: 78.157.167.–
Mutagen0
Super člen
30. 4. 2014   #7
-
0
-

#6 hauz
A dát sem řešení tě už nenapadne?   

Nahlásit jako SPAM
IP: 89.190.90.–
hauz0
Duch
30. 4. 2014   #8
-
0
-

#7 Mutagen
To pardon:-) Jsem tu poprvé.. 

Jednoduše si vytvořit proměnnou A, B a nastavit na false.. po stisknutí enter nastavit proměnné na true, a pak jenom v podmínce porovnávat.   

Bool aEnable = false;
Bool bEnable = false;

if(e.KeyCode == Keys.Enter)
{
	aEnable = true;
	bEnable = true;
}
if(e.KeyCode == Keys.A && aEnable == true)
{
	aEnable = false;
	bEnable = false;
}
if(e.KeyCode == Keys.B && bEnable == true)
{
	aEnable = false;
	bEnable = false;
}
Nahlásit jako SPAM
IP: 78.157.167.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

Blokování www stránek — založil Ashwood

Blokování PINGu z netu — založil CZechBoY

Zachytavanie klaves — založil Misiak

Snímání kláves — založil TB

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý