ist das so akzeptabel, oder gibt es da eine Konstante, um auch wirklich nur den momentanen status zu erhalten?
[ja, ich könnte über #WM_KEYDOWN/UP-ereignisse auch ne flag benutzen.]
Fluid Byte hat geschrieben:
Es gibt keinen richtigen oder falschen Weg. Nimm das was am besten für dich funktioniert.
GetAsyncKeyState_() löst aber kein Ereignis aus, ist also in einem
vernünftigen EventLoop nicht zu gebrauchen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
OpenWindow(0,0,0,400,300,"untitled",#WS_OVERLAPPEDWINDOW | 1)
Repeat
EventID = WaitWindowEvent()
If EventID = #WM_KEYDOWN
If GetAsyncKeyState_(#VK_CONTROL)
Debug "#VK_CONTROL"
EndIf
EndIf
Until EventID = 16
So wird nur ein Ereignis angezeigt, aber man könnte gleich den ersten
Code nehmen
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
es ging mir nur darum, dass GetAsyncKeyState_(#VK_CONTROL) auch #true gibt, wenn die taste zwar nicht gedrückt ist, aber seit dem letzten aufruf der funktion gedrückt wurde. mich interessiert nur ersteres, also das most significant bit, und war nur unsicher, ob das mit dem 1<<16 zuverlässig ist.
danke euch.