Jump to content
  • Advertisement
Sign in to follow this  
mc30900

problom with keys

This topic is 4606 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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!

Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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:

?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!