Wie am besten auf einen Tastendruck in einem zweiten Thread warten?
- 
					
					
					
					
Hallo,
ich erzeuge in der WinMain Funktion nach der Erstellung des Hauptfensters einen Thread. Dieser soll weitere Funktionen aufrufen und in diesen sollen Tastatureningabe verarbeitet werden.
Ist es in Ordnung, das so zu machen:while (1) { key = GetKeyState( MY_DESIRED_KEY ); // .... }Frisst das zuviel CPU Ressourcen? Gibt es eine bessere Möglichkeit?
Gruß,
w.s.
 - 
					
					
					
					
Wenn du schon ein Fenster hast, wie wär's mit Windows Messages?
...
 - 
					
					
					
					
Du kannst das Fenster subclassen und einen Event erzeugen oder ein Flag das gesetzt wird wenn die entsprechende WM_CHAR/WM_KEYDOWN Nachricht eintritt.
BTW: Deine GetKeyState method eist nicht sicher... Es ist nicht gewährleistet, dass die Taste jemals als gedrückt erkannt wurde
 - 
					
					
					
					
Fürs Subclassing brauche ich ein HWND soviel ich weiss. Mein zweiter Thread hat ja kein HWND, d.h. ich müsste ja ein zweites Fenster erzeugen. Meinst du das?
 - 
					
					
					
					
Ein Thread ist mit Sicherheit kein Fenster.
Aber Ohne Fenster kommt keine Tastaturnachricht na.Wenn dies Dein Programm ist, wo hast Du jetzt ein Problem mit dem HWND?
 - 
					
					
					
					
Der Thread, in dem ich Tastaturereignisse lesen will, der hat kein HWND.
 - 
					
					
					
					
Nimm GetAsyncKeyState
 - 
					
					
					
					
Kann ich dem gleichen Control eine andere WndProc zuweisen? Probier ich grade ohne Erfolg

 - 
					
					
					
					
Ich meine, ein zweites Mal SetWindowLong fürs gleiche Control.

 - 
					
					
					
					
Sorry, funzt!
Hatte return DefWindowProc vergessen!
 - 
					
					
					
					
mach dir ein Event auf das du im Thread mit WaitForSingleObject wartest und das in deine WinProc des Main Fensters beim eintreffen der richtigen taste gestzt wird
MfG
 - 
					
					
					
					
Danke für den Tip, hast du ein kleines Beispiel parat, oder nen Link?
 - 
					
					
					
					
guggste msdn
- CreateEvent
 - SetEvent
 - WaitForSingleObject
 
 - 
					
					
					
					
alteapi schrieb:
guggste msdn
- CreateEvent
 - SetEvent
 - WaitForSingleObject
 
das war eine sehr gute idee. funktioniert erste sahne, danke !