-
01.09.11 16:32 #16
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Du mußt einfach die Eingabe auslesen (ReadConsoleInput).
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
ich hab jetzt im update-Thread folgendes eingebaut:
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
DWORD WINAPI update(LPVOID attr) { INPUT_RECORD irInBuf; DWORD changeEvent, cNumRead; while(1){ ... if (meldungscounter > 0) { ausgabe(); changeEvent = WaitForMultipleObjects(2, events, FALSE, INFINITE); switch (changeEvent) { case WAIT_OBJECT_0 + 0: //es ist eine neue Meldung eingetroffen { break; } case WAIT_OBJECT_0 + 1: //es gab eine Konsoleneingabe { if (! ReadConsoleInput( stdinHandle, // input buffer handle &irInBuf, // buffer to read into 1, // size of read buffer &cNumRead) ) // number of records read { cerr << "Lesen von der Konsole hat nicht funktionniert"<<endl; } /// ErrorExit("ReadConsoleInput"); // cin >> eingabe; switch (irInBuf.EventType) { case KEY_EVENT: // keyboard input { cin >>eingabe; break; } default: { break; } } if (eingabe > 0 && eingabe <= 7) { choice = eingabe; } // ResetEvent(stdinHandl); break; } } } else { WaitForSingleObject(anzevent, INFINITE); /* if(ResetEvent(anzevent)==0) { cout << "Zurücksetzen des Events hat nicht geklappt: " + GetLastError(); }*/ choice = 0; } } }
und jetzt läuft das ganze in Endlosschleife und wird gar nicht blockiert...
-
irgendwie werd ich aus dem ganzen nicht schlauer...
-
Gibt's eigentlich bei Windows vielleicht Event KeyPressed? auf den man abfragen kann?
-
Bitte nicht so viele Doppelposts. Es gibt den "Edit" Knopf...
GetKeyState ist eine Möglichkeit. Oder wenn's auch reagieren soll, wenn das Fenster minimiert ist: GetAsyncKeyState(). Und falls du dann auch noch irgendeine Taste willst:
Code c:1 2 3 4 5 6 7 8 9 10 11 12
BYTE bKeys[256]; while(TRUE){ if(!GetKeyboardState(&bKeys)) break; for(int i = 0; i < 256; i++){ if(bKeys[i] & 0x80){ // Button Pressed (i == Virtual Key-Code) }else(bKeys[i] & 0x01){ // Button Toggled (Caps Lock, Num Lock, ...) } } Sleep(1); }
Gruss
cwriterGeändert von cwriter (03.09.11 um 15:56 Uhr)
Intel inside - Idiot outside :-)
Ich schreibe in C und bin Anfänger.
______________________________
Falls ich eines Tages einen guten Beitrag schreiben werde, bitte bewerten und/oder Danke sagen.
Danke
Ähnliche Themen
-
Die Umlaute bringen mich um den Verstand (mal geht / mal geht nicht)
Von Simplify im Forum PHPAntworten: 6Letzter Beitrag: 28.07.11, 18:32 -
exe geht - exe geht nicht - eine Idee
Von olek im Forum Visual Basic 6.0Antworten: 18Letzter Beitrag: 14.09.05, 20:13 -
es geht und geht dennoch nicht
Von rolgal im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 15.05.05, 13:37 -
swf in einem Flashfilm geht, aber maus geht nicht...
Von ksk im Forum Flash PlattformAntworten: 10Letzter Beitrag: 26.10.04, 00:05 -
Ein Thread zu Syntaxspielereien ;-) (Was geht und was geht nicht)
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 01.07.04, 11:26



3Danke

Zitieren
Login






