|
-
Jul 11th, 2010, 12:40 AM
#1
Thread Starter
Fanatic Member
[RESOLVED] Windows 7 API Problems
My problem is with the following API.
Code:
Private Declare Function GetKeyState Lib "user32" (ByVal keyCode As Integer) As Integer
In Windows XP, I could simply use the API like this:
Code:
If GetKeyState(Keys.Left) < 0 Then 'Move Left
If the key was pressed, it was a certain number below 0, the number itself alternated each time you pressed the key but it was always below 0.
My problem is that in Windows 7, when you press the Left key, the number isn't the same, in fact the number isn't even negative anymore. This problem tricked me at first into thinking the API didn't even work as when I ran the .exe of course my code did nothing since GetKeyState never returned a number below 0. I tested the value itself though and found that it never goes negative, the number for the key just decreases a little.
The weird thing is, while the .exe from the Debug folder proved my point that the GetKeyState number was different and thus the program didn't work, running the .exe from the Release folder actually worked, the controls were fine and the API returned numbers less than 0 for GetKeyState. But the .exe from the release folder was built with my old XP computer, as soon as I made a new build with my windows 7 computer the API stopped working again.
I searched the site and googled but didn't find anything on this problem. Does anyone know what's going on? Why did Windows 7 change the number returned for when the key is down, is there a way to change it back without having to include some large package with my program? Why did the build from my XP computer work at first? Also it was only the one from the release folder, not the debug one, even though they were both from the XP computer.
EDIT: I tested some more on windows 7 and found that every time I run the program, the number returned by GetKeyState is completely different. When the key is down the number is 1,000,000 units higher than up, but other than that the number is random each program start.
Last edited by Vectris; Jul 11th, 2010 at 12:53 AM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|