Ich möchte überprüfen, ob eine Tastenfolge gedrückt wird. Wie ein Passwort, ich möchte, dass das Meldungsfeld Sie müssen "bcqwl" in richtigen sequenze eingeben. Ich versuchteWie überprüft man, ob eine Tastenfolge gedrückt wird?
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
while(true)
{
if(GetKeyState('B') & 0x8000)
{
cout<<"b has been press"<<endl;
if(GetKeyState('C') & 0x8000)
{
cout<<"c has been press"<<endl;
if(GetKeyState('Q') & 0x8000)
{
cout<<"Q has been press"<<endl;
if(GetKeyState('W') & 0x8000)
{
cout<<"W has been press"<<endl;
if(GetKeyState('L') & 0x8000)
{
MessageBox(NULL,"YES","YES",MB_OK);
}
else
{
continue;
}
}
else
{
continue;
}
}
else
{
continue;
}
}
else
{
continue;
}
}
else
{
continue;
}
}
}
Aber es funktioniert nicht. Er druckt "B wurde gedrückt", oft aber nicht unendlich oft, wenn b gedrückt wird. Wenn nach dem Drücken von b drücke ich c nichts passiert. So ich müde:
step:
if(GetKeyState('B') & 0x8000)
{
cout<<"B has been press"<<endl;
goto step1;
}
else
{
goto step;
}
step1:
if(GetKeyState('C') & 0x8000)
{
MessageBox(NULL,"WORK","yes",MB_OK);
}
else
{
goto step;
}
aber nicht funktioniert. ich auch müde:
#include <iostream>
#include <windows.h>
int main()
{
int progress = 0;
while(progress<=4)
{
if(GetKeyState('B') & 0x8000)
{
std::cout<<"b has been press"<<std::endl;
progress=1;
}
else
{
progress=0;
}
if(progress==1)
{
if(GetKeyState('C') & 0x8000)
{
std::cout<<"c has been press"<<std::endl;
progress=2;
}
else
{
progress=0;
}
}
if(progress==2)
{
if(GetKeyState('Q') & 0x8000)
{
std::cout<<"q has been press"<<std::endl;
progress=3;
}
else
{
progress=0;
}
}
if(progress==3)
{
if(GetKeyState('W') & 0x8000)
{
std::cout<<"w has been press"<<std::endl;
progress=4;
}
else
{
progress=0;
}
}
if(progress==4)
{
if(GetKeyState('L') & 0x8000)
{
std::cout<<"l has been press"<<std::endl;
progress=5;
}
else
{
progress=0;
}
}
}
return 0;
}
Aber das Ausgangs für viele Male „b hat Presse gewesen“, aber nicht unendlich, wenn ich drücken b und nach, wenn ich drücken c nichts geschieht, praticaly nach drücken b und das Programm gehen in if(process==1)
, aber wenn ich drücke c nichts passiert
PS Entschuldigung für mein schlechtes Englisch.
Ich habe meine Antwort aktualisiert. – rbaleksandar
[using Namespace std ist eine schlechte Idee] (http://stackoverflow.com/q/1452721/995714), und es ist besonders sehr schlecht mit '#include' weil beide "min" und "max" definiert haben –
Ok Danke für die Informationen, ich werde reparieren, wenn mein Programm funktioniert. – secon25