Hello. I have a really weird problem. Whenever I try to get if the user pressed down on the mouse (clicked), via GetAsyncKeyState(), it only shows it some times. I tried the exact same code, but with another key Ex: A, and it works fine.
Here is the code.
public void GetMouse()
foreach (System.Int32 i in Enum.GetValues(typeof(Keys)))
int pressed = GetAsyncKeyState(i);
if ((pressed == -32767))
if ((i == 1) || (i == 2))
This goes through a loop, so it is always checking. Oh, and also I've tried this on multiple windows, and such, and it still doesn't work.
That seems like a very CPU expensive loop to poll for mouse clicks. It has to go through hundreds (maybe even thousands) of enums, poll the GetAsyncKeyState, filter the results, then set flags. An event would have a LOT less overhead.
As for why it's not working - I have no idea. Never used GetAsyncKeyState before. Maybe put this in context for us (what are you trying to accomplish) and we can help come up with a better solution.