1 Taste sperren
-
hey ich hab ein Problem
ich möchte nur 1 Taste sperren z.b. "a"BlockInput(char(97))geht ja nicht da sperrt er ja alles

ist es möglich nur 1 Taste zu sperren ?
mfg
-
mit der windows api hast du die möglichkeit diverse sachen mit SetWindowsHookEx() zu filtern. so kannst du auch die komplette keyboard eingabe von deinen eigenen funktionen handeln (zomg dieses wort :P) lassen.
-
hm ok
kannst du mir vll ein direktes bsp geben mit der taste "a"mein fehler
3831 e:\Dev-Cpp\include\winuser.h too few arguments to function `HHOOK__* SetWindowsHookExA(int, LRESULT ()(int, WPARAM, LPARAM), HINSTANCE__, DWORD)'hab die winuser.h im include
-
MasterTobi schrieb:
hm ok
kannst du mir vll ein direktes bsp geben mit der taste "a"mein fehler
3831 e:\Dev-Cpp\include\winuser.h too few arguments to function `HHOOK__* SetWindowsHookExA(int, LRESULT ()(int, WPARAM, LPARAM), HINSTANCE__, DWORD)'hab die winuser.h im include
windows.h sollte reichen. wie dem auch sei:
HHOOK hook = NULL; hook = SetWindowsHookEx(WH_KEYBOARD, hookproc, hinstance, NULL); LRESULT CALLBACK hookproc(int ncode, WPARAM wparam, LPARAM lparam) { // die funktion wird nun immer aufgerufen wenn eine taste gedrückt wird // um also eine zu blocken parameter prüfen und return NULL; aufrufen // anstatt die kontrolle an die nächste hook procedure weiterzugeben: return (CallNextHookEx(hook,ncode,wparam,lparam) ); }
-
omg irgendwie versteh ich des net xD
gibts net ne andere lösung xD
-
hab mir grad gedacht das ich
char(97)=""
oder char(97)=char(0)mache aber das funzt auch net:(
-
MasterTobi schrieb:
hab mir grad gedacht das ich
char(97)=""
oder char(97)=char(0)mache aber das funzt auch net:(
BlockInput() wird nicht funktionieren. schau mal den prototypen an:
BOOL BlockInput( BOOL fBlockIt );als einziger parameter ist fBlockIt zu erkennen, welcher nunmal bewrikt
ob der Input geblockt werden soll oder nicht. 0 nein, nicht 0 ja
-
ja genau des is halt des prob
es muss doch einen anderen code geben auser deinen mit win aspi
-
MasterTobi schrieb:
ja genau des is halt des prob
es muss doch einen anderen code geben auser deinen mit win aspi
ja, weit aus kompliziertere varianten

-
boah super

vll sollt ich mir was anderes einfallen lassen

-
Wofür brauchst du es denn? Vielleicht gibt es ja einfacherer Varianten, als eine Taste zu blocken?
-
ehm immer wenn ich eine taste drück a-z oder A-Z
dann kolabiert mein programm xD
is in einer konsole geschrieben:)
-
LOL, dann ist die taste zu sperren nicht der richtige ansatz.
-
hier ma ein code schnipsel:)
#include <iostream.h> #include <windows.h> #include <fstream.h> #include <string.h> #include <conio.h> int main(){ do { cin>>a; switch (a) { case 1: break; case 2: break; case 3: --dummheit;break; case 4: break; case 5: if (joker>0) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),2); --joker; cout<<"M"<<oe<<"gliche Antworten = 2 und 3"<<endl<<endl; cout<<" Antwort: "; } else if(joker<=0) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),4); cout<<" Kein Joker verf"<<ue<<"gbar, bitte Eingabe wiederholen: "; } }//fall ende {cout<<"lol";} if (a>5)//bedingung ka geht einfach {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 4); cout<<"Falsche Eingabe! Bitte Wiederholen ";} }while (a>4);wie gesagt geb ich jetzt in a ein a ein dann naja kolabiert er

des default in switch hab ich extra rausgenommen
-
welchen datentyp hat die variable 'a' ?
-
integer
-
ja ich weiß es kommt jetzt integer ist zahl bla bla:-D
aber mit char funzt des genauso wenig glaub ich

-
ok, ich habs mal für mich kompiliert weil ich auf anhieb keinen sinn drin erkennen konnte

bis auf folgende änderungen:#include <fstream> #include <iostream>hab ich nur noch die variablen deklariert. also bei mir crasht da nüx

-
gemein wie is deine variablekann es auch daran liegen das ich System(color) benutze oder slepp
-
Gib ne Meldung aus, dass man auf keinen Fall auf A drücken darf.
-
int a, dummheit, joker;