problom with keys

Started by
9 comments, last by lc_overlord 18 years, 3 months ago
hello i'm using the KEYS code of NEHE ( the array which help me to know what key have peen pressed like if its A i do if (keys['A']) .... ) so i have no idea what to put in the array value to see if some keys were pressed the list of keys which i need is 'enter' 'the point which is 2 blocks away from M' '-' '+' thanks in advance
Advertisement
A little cut and paste from winuser.h
/* * Virtual Keys, Standard Set */#define VK_LBUTTON        0x01#define VK_RBUTTON        0x02#define VK_CANCEL         0x03#define VK_MBUTTON        0x04    /* NOT contiguous with L & RBUTTON */#if(_WIN32_WINNT >= 0x0500)#define VK_XBUTTON1       0x05    /* NOT contiguous with L & RBUTTON */#define VK_XBUTTON2       0x06    /* NOT contiguous with L & RBUTTON */#endif /* _WIN32_WINNT >= 0x0500 *//* * 0x07 : unassigned */#define VK_BACK           0x08#define VK_TAB            0x09/* * 0x0A - 0x0B : reserved */#define VK_CLEAR          0x0C#define VK_RETURN         0x0D#define VK_SHIFT          0x10#define VK_CONTROL        0x11#define VK_MENU           0x12#define VK_PAUSE          0x13#define VK_CAPITAL        0x14#define VK_KANA           0x15#define VK_HANGEUL        0x15  /* old name - should be here for compatibility */#define VK_HANGUL         0x15#define VK_JUNJA          0x17#define VK_FINAL          0x18#define VK_HANJA          0x19#define VK_KANJI          0x19#define VK_ESCAPE         0x1B#define VK_CONVERT        0x1C#define VK_NONCONVERT     0x1D#define VK_ACCEPT         0x1E#define VK_MODECHANGE     0x1F#define VK_SPACE          0x20#define VK_PRIOR          0x21#define VK_NEXT           0x22#define VK_END            0x23#define VK_HOME           0x24#define VK_LEFT           0x25#define VK_UP             0x26#define VK_RIGHT          0x27#define VK_DOWN           0x28#define VK_SELECT         0x29#define VK_PRINT          0x2A#define VK_EXECUTE        0x2B#define VK_SNAPSHOT       0x2C#define VK_INSERT         0x2D#define VK_DELETE         0x2E#define VK_HELP           0x2F/* * VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39) * 0x40 : unassigned * VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A) */#define VK_LWIN           0x5B#define VK_RWIN           0x5C#define VK_APPS           0x5D/* * 0x5E : reserved */#define VK_SLEEP          0x5F#define VK_NUMPAD0        0x60#define VK_NUMPAD1        0x61#define VK_NUMPAD2        0x62#define VK_NUMPAD3        0x63#define VK_NUMPAD4        0x64#define VK_NUMPAD5        0x65#define VK_NUMPAD6        0x66#define VK_NUMPAD7        0x67#define VK_NUMPAD8        0x68#define VK_NUMPAD9        0x69#define VK_MULTIPLY       0x6A#define VK_ADD            0x6B#define VK_SEPARATOR      0x6C#define VK_SUBTRACT       0x6D#define VK_DECIMAL        0x6E#define VK_DIVIDE         0x6F#define VK_F1             0x70#define VK_F2             0x71#define VK_F3             0x72#define VK_F4             0x73#define VK_F5             0x74#define VK_F6             0x75#define VK_F7             0x76#define VK_F8             0x77#define VK_F9             0x78#define VK_F10            0x79#define VK_F11            0x7A#define VK_F12            0x7B#define VK_F13            0x7C#define VK_F14            0x7D#define VK_F15            0x7E#define VK_F16            0x7F#define VK_F17            0x80#define VK_F18            0x81#define VK_F19            0x82#define VK_F20            0x83#define VK_F21            0x84#define VK_F22            0x85#define VK_F23            0x86#define VK_F24            0x87/* * 0x88 - 0x8F : unassigned */#define VK_NUMLOCK        0x90#define VK_SCROLL         0x91/* * NEC PC-9800 kbd definitions */#define VK_OEM_NEC_EQUAL  0x92   // '=' key on numpad/* * Fujitsu/OASYS kbd definitions */#define VK_OEM_FJ_JISHO   0x92   // 'Dictionary' key#define VK_OEM_FJ_MASSHOU 0x93   // 'Unregister word' key#define VK_OEM_FJ_TOUROKU 0x94   // 'Register word' key#define VK_OEM_FJ_LOYA    0x95   // 'Left OYAYUBI' key#define VK_OEM_FJ_ROYA    0x96   // 'Right OYAYUBI' key/* * 0x97 - 0x9F : unassigned *//* * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys. * Used only as parameters to GetAsyncKeyState() and GetKeyState(). * No other API or message will distinguish left and right keys in this way. */#define VK_LSHIFT         0xA0#define VK_RSHIFT         0xA1#define VK_LCONTROL       0xA2#define VK_RCONTROL       0xA3#define VK_LMENU          0xA4#define VK_RMENU          0xA5#if(_WIN32_WINNT >= 0x0500)#define VK_BROWSER_BACK        0xA6#define VK_BROWSER_FORWARD     0xA7#define VK_BROWSER_REFRESH     0xA8#define VK_BROWSER_STOP        0xA9#define VK_BROWSER_SEARCH      0xAA#define VK_BROWSER_FAVORITES   0xAB#define VK_BROWSER_HOME        0xAC#define VK_VOLUME_MUTE         0xAD#define VK_VOLUME_DOWN         0xAE#define VK_VOLUME_UP           0xAF#define VK_MEDIA_NEXT_TRACK    0xB0#define VK_MEDIA_PREV_TRACK    0xB1#define VK_MEDIA_STOP          0xB2#define VK_MEDIA_PLAY_PAUSE    0xB3#define VK_LAUNCH_MAIL         0xB4#define VK_LAUNCH_MEDIA_SELECT 0xB5#define VK_LAUNCH_APP1         0xB6#define VK_LAUNCH_APP2         0xB7#define VK_OEM_1          0xBA   // ';:' for US#define VK_OEM_PLUS       0xBB   // '+' any country#define VK_OEM_COMMA      0xBC   // ',' any country#define VK_OEM_MINUS      0xBD   // '-' any country#define VK_OEM_PERIOD     0xBE   // '.' any country#define VK_OEM_2          0xBF   // '/?' for US#define VK_OEM_3          0xC0   // '`~' for US/* * 0xD8 - 0xDA : unassigned */#define VK_OEM_4          0xDB  //  '[{' for US#define VK_OEM_5          0xDC  //  '\|' for US#define VK_OEM_6          0xDD  //  ']}' for US#define VK_OEM_7          0xDE  //  ''"' for US#define VK_OEM_8          0xDF

(there are more than this)
so for the return key just use VK_RETURN as a value
the rest are
VK_OEM_PERIOD (perhaps, i have never tested it)
VK_SUBTRACT
VK_ADD
thank you very much it helped me alot...
but still 1 problom i need the '+' and '-' but not where the numpad is ...
i need it when its above 'P'
can u get me the names of them in there?

thanks in advance
oh and i also needs '>'
A quick search on Google would have given you this, clicky.

Hope that helps.
--
Cheers,
Darren Clark
i already found that.. and no it doesnt.
it dont have all the Keys i think O_o
Quote:Original post by mc30900
i already found that.. and no it doesnt.
it dont have all the Keys i think O_o


You should be able to open your "winuser.h" file and get what you need. If you are using DevCpp I think you can hold down control and left click once on one of those defines, such as VK_ESCAPE, and it will bring up where it is defined, to which you can find the correct values. If you have VisualStudio you can right click and choose, Go To Definition and the header file will pop-up. Alternatively, you can do #include <winuser.h> and in Visual Studio right click on the middle of that and open that header file or left control click with DevCpp and it will open as well. Good luck!
As Drew Benton and lc_overlord suggest, opening up your "winuser.h" file will give you the constants you want. There may be some differences as your keyboard may not be an english layout one so you will have to do a bit a trial and error checking.

One thing to note is that '.' (period/full stop) is the same key as '>' (greater than) as they are both on the same physical key as each other. If you want to use the same key to do different things then you'll have to check for the shift key to see if it's a '.' or '>' that's being generated. You can do this using the GetKetState function and going from there.

I hope that this gets you going in the right direction. [smile]
--
Cheers,
Darren Clark
Quote:Original post by eSCHEn
One thing to note is that '.' (period/full stop) is the same key as '>' (greater than) as they are both on the same physical key as each other. If you want to use the same key to do different things then you'll have to check for the shift key to see if it's a '.' or '>' that's being generated.


This is not the case for me as i use a swedish keyboard, and i guess the same thing applies if you use an Israeli keyboard (allthough i have never seen one).
Because of this it would be better to find the direct keypress code for that symbol (and make it mappable somehow).
One way could be to make a program that records(or shows) the numerical value of all keystrokes generated before you press the escape button, once you got that it's only a matter of testing them all.

Edit: just found this page with all the viritual keycodes with some explenations.
Yeah I never considered that to be honest, internationalization is a tricky thing to achieve, especially when I only have access to English keyboards like I have here. Apologies if I misled the OP [embarrass].

So is your keyboard like this one then lc_overlord:

?
--
Cheers,
Darren Clark

This topic is closed to new replies.

Advertisement