Difference between revisions of "IsKeyPressed"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Haama
(Notes on Windows 2000 compabitility)
imported>Haama
(→‎Notes: Clarify DisableKey/TapKey/IsKeyPressed)
Line 91: Line 91:
endif</pre>
endif</pre>
* This function won't work correctly under Windows 2000 unless the .ini setting '''bBackgrounKeyboard''' is set to 1. You can use [[con_SetINISetting]] to do this (make sure to set it whenever the game is loaded).
* This function won't work correctly under Windows 2000 unless the .ini setting '''bBackgrounKeyboard''' is set to 1. You can use [[con_SetINISetting]] to do this (make sure to set it whenever the game is loaded).
* To clear up the [[DisableKey#Notes|notes from DisableKey]] - Once the key has been disabled, TapKey will still work and the key will function, but it won't be detected by IsKeyPressed.


==See Also==
==See Also==

Revision as of 14:08, 28 October 2007

A command for Oblivion Script Extender

Syntax:

IsKeyPressed key

Returns true if key is currently pressed down. Key values are stored in Windows header files, as opposed to IsKeyPressed2's DirectX scancodes.

Sample Key IDs

1   Left Mouse Button
2   Right Mouse Button
4   Middle Mouse Button
---
13  Enter
---
20  Caps Lock
---
32  spacebar
---
33  PgUp
34  PgDn
35  End
36  Home
37  Left
38  Up
39  Right
40  Down
44  PrtScr
45  Ins
46  Del
---
48  0
49  1
50  2
...
55  7
56  8
57  9
---
65  A
66  B
67  C
...
88  X
89  Y
90  Z
---
96  NUM0
97  NUM1
98  NUM2
...
103 NUM7
104 NUM8
105 NUM9
106 NUM*
107 NUM+
109 NUM-
111 NUM/
---
112 F1
113 F2
114 F3
...
123 F12
...
127 F16 
---
160 left shift
161 right shift
162 left control
163 right control

A longer list can be found here

These can be converted to DirectX keycodes using DX2VK.

Notes

  • This function doesn't return a value while a MessageBox is being displayed, presumably because input is switched over to the MessageBox.
  • To convert DX scan codes to values usable by this function, use DX2VK.
  • Bear in mind that this function returns 1 for as long as the key is held down, so it's generally a good idea to trap the key and then wait until it is released, i.e.:
if ( curKey && isKeyPressed curkey ) ; key still being held down
  return ; wait until it's released
else
  set curkey to 0
endif

if ( isKeyPressed <keyCode> )
  ; do stuff
  set curKey to <keyCode>
endif
  • This function won't work correctly under Windows 2000 unless the .ini setting bBackgrounKeyboard is set to 1. You can use con_SetINISetting to do this (make sure to set it whenever the game is loaded).
  • To clear up the notes from DisableKey - Once the key has been disabled, TapKey will still work and the key will function, but it won't be detected by IsKeyPressed.

See Also