Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как различить левый и правый Ctrl, Sift, Alt под 98 (http://forum.oszone.net/showthread.php?t=29546)

bilytur 03-08-2004 03:33 204511

Это все под 98, под XP проблем нет.

В msdn написано что различить можно с помощью GetKeyState(VirtKey);
где VirtKey один из:
VK_LSHIFT,VK_RSHIFT,VK_LCONTROL,VK_RCONTROL,VK_LMENU,VK_RMENU

Но GetKeyState всегда возвращает 0

Что посоветуете?

hasherfrog 03-08-2004 12:26 204512

Читаем pdsk docs:
These left- and right-distinguishing constants are available to an application only through the GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, and MapVirtualKey functions.
...
Minimum operating systems Windows 95, Windows NT 3.1

Так что ищите багу у себя :idontnow:.

bilytur 04-08-2004 03:11 204513

Бага не нашел, да там и всего-то несколько строк.
Тот-же самый код ( даже тот-же екзешник) под XP работает нормально.
Не понимаю в чем дело.



Добавлено:

Покопался в psdk,
В описании одной из приведенных вами функций, а именно GetAsyncKeyState есть ремарка:
Цитата:

Windows 95/98/Me: Windows 95 does not support the left- and right-distinguishing constants. If you call GetAsyncKeyState with these constants, the return value is zero.
То есть под 98 работать и не должна, хотя в описании GetKeyState этот факт скромно умалчивается.


Время: 16:48.

Время: 16:48.
© OSzone.net 2001-