<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Virtual Key Codes Update]]></title><description><![CDATA[<h1>Virtual-Key Codes Update</h1>
<p dir="auto">The NP++ manual mentions the <a href="https://github.com/notepad-plus-plus/npp-usermanual/blob/master/content/docs/config-files.md#virtual-key-number" rel="nofollow ugc">Virtual Key Number</a> that is used for the <code>key</code> attribute in <code>shortcuts.xml</code>.</p>
<p dir="auto">It mentions a “complete list” which can be found on the repo at <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/PowerEditor/src/keys.h" rel="nofollow ugc">keys.h</a>, but that file is far from complete. My `shortcuts.xml` file, for instance, mentions key <code>117</code>, which is <code>F6</code>, and is not defined in <code>keys.h</code>.</p>
<p dir="auto">Further, the <code>keys.h</code> file only lists the hexadecimal values, while `shortcuts.xml` uses the decimal values.</p>
<p dir="auto">To that end, I thought it would be useful to have a proper list for my own reference, and I’m sharing it here.</p>
<p dir="auto">The table below is a heavily adapted version of the table at <a href="https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes" rel="nofollow ugc">https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes</a>, showing the symbolic constant names, hexadecimal values, decimal values, availability, and mouse or keyboard equivalents for the virtual-key codes used by Windows. <strong>The codes have been grouped by how useful they may be for making shortcuts.</strong></p>
<p dir="auto"><strong>Please note: the keycode represents the key regardless of any modifier key (e.g., <code>Ctrl</code>, <code>alt</code> or <code>shift</code>). You specify the modifier keys in the <code>shortcuts.xml</code> file.</strong> So if the table says that a common key (like the letter <code>A</code>) is a good shortcut key, it means it’s a good key <em>if</em> you combine it with a modifier key.</p>
<p dir="auto">The table has been split into two parts to accommodate the 16384-character post limitation.</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Constant</th>
<th>Value</th>
<th>Decimal</th>
<th>Availability</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Best choice: Best default picks for Notepad++ shortcuts.</td>
</tr>
<tr>
<td><code>VK_BACK</code></td>
<td>0x08</td>
<td>8</td>
<td>Recommended</td>
<td>Backspace key</td>
</tr>
<tr>
<td><code>VK_TAB</code></td>
<td>0x09</td>
<td>9</td>
<td>Recommended</td>
<td>Tab key</td>
</tr>
<tr>
<td><code>VK_RETURN</code></td>
<td>0x0D</td>
<td>13</td>
<td>Recommended</td>
<td>Enter key</td>
</tr>
<tr>
<td><code>VK_ESCAPE</code></td>
<td>0x1B</td>
<td>27</td>
<td>Recommended</td>
<td>Esc key</td>
</tr>
<tr>
<td><code>VK_SPACE</code></td>
<td>0x20</td>
<td>32</td>
<td>Recommended</td>
<td>Spacebar key</td>
</tr>
<tr>
<td><code>VK_PRIOR</code></td>
<td>0x21</td>
<td>33</td>
<td>Recommended</td>
<td>Page up key</td>
</tr>
<tr>
<td><code>VK_NEXT</code></td>
<td>0x22</td>
<td>34</td>
<td>Recommended</td>
<td>Page down key</td>
</tr>
<tr>
<td><code>VK_END</code></td>
<td>0x23</td>
<td>35</td>
<td>Recommended</td>
<td>End key</td>
</tr>
<tr>
<td><code>VK_HOME</code></td>
<td>0x24</td>
<td>36</td>
<td>Recommended</td>
<td>Home key</td>
</tr>
<tr>
<td><code>VK_LEFT</code></td>
<td>0x25</td>
<td>37</td>
<td>Recommended</td>
<td>Left arrow key</td>
</tr>
<tr>
<td><code>VK_UP</code></td>
<td>0x26</td>
<td>38</td>
<td>Recommended</td>
<td>Up arrow key</td>
</tr>
<tr>
<td><code>VK_RIGHT</code></td>
<td>0x27</td>
<td>39</td>
<td>Recommended</td>
<td>Right arrow key</td>
</tr>
<tr>
<td><code>VK_DOWN</code></td>
<td>0x28</td>
<td>40</td>
<td>Recommended</td>
<td>Down arrow key</td>
</tr>
<tr>
<td><code>VK_INSERT</code></td>
<td>0x2D</td>
<td>45</td>
<td>Recommended</td>
<td>Insert key</td>
</tr>
<tr>
<td><code>VK_DELETE</code></td>
<td>0x2E</td>
<td>46</td>
<td>Recommended</td>
<td>Delete key</td>
</tr>
<tr>
<td>0</td>
<td>0x30</td>
<td>48</td>
<td>Recommended</td>
<td>0 key</td>
</tr>
<tr>
<td>1</td>
<td>0x31</td>
<td>49</td>
<td>Recommended</td>
<td>1 key</td>
</tr>
<tr>
<td>2</td>
<td>0x32</td>
<td>50</td>
<td>Recommended</td>
<td>2 key</td>
</tr>
<tr>
<td>3</td>
<td>0x33</td>
<td>51</td>
<td>Recommended</td>
<td>3 key</td>
</tr>
<tr>
<td>4</td>
<td>0x34</td>
<td>52</td>
<td>Recommended</td>
<td>4 key</td>
</tr>
<tr>
<td>5</td>
<td>0x35</td>
<td>53</td>
<td>Recommended</td>
<td>5 key</td>
</tr>
<tr>
<td>6</td>
<td>0x36</td>
<td>54</td>
<td>Recommended</td>
<td>6 key</td>
</tr>
<tr>
<td>7</td>
<td>0x37</td>
<td>55</td>
<td>Recommended</td>
<td>7 key</td>
</tr>
<tr>
<td>8</td>
<td>0x38</td>
<td>56</td>
<td>Recommended</td>
<td>8 key</td>
</tr>
<tr>
<td>9</td>
<td>0x39</td>
<td>57</td>
<td>Recommended</td>
<td>9 key</td>
</tr>
<tr>
<td>A</td>
<td>0x41</td>
<td>65</td>
<td>Recommended</td>
<td>A key</td>
</tr>
<tr>
<td>B</td>
<td>0x42</td>
<td>66</td>
<td>Recommended</td>
<td>B key</td>
</tr>
<tr>
<td>C</td>
<td>0x43</td>
<td>67</td>
<td>Recommended</td>
<td>C key</td>
</tr>
<tr>
<td>D</td>
<td>0x44</td>
<td>68</td>
<td>Recommended</td>
<td>D key</td>
</tr>
<tr>
<td>E</td>
<td>0x45</td>
<td>69</td>
<td>Recommended</td>
<td>E key</td>
</tr>
<tr>
<td>F</td>
<td>0x46</td>
<td>70</td>
<td>Recommended</td>
<td>F key</td>
</tr>
<tr>
<td>G</td>
<td>0x47</td>
<td>71</td>
<td>Recommended</td>
<td>G key</td>
</tr>
<tr>
<td>H</td>
<td>0x48</td>
<td>72</td>
<td>Recommended</td>
<td>H key</td>
</tr>
<tr>
<td>I</td>
<td>0x49</td>
<td>73</td>
<td>Recommended</td>
<td>I key</td>
</tr>
<tr>
<td>J</td>
<td>0x4A</td>
<td>74</td>
<td>Recommended</td>
<td>J key</td>
</tr>
<tr>
<td>K</td>
<td>0x4B</td>
<td>75</td>
<td>Recommended</td>
<td>K key</td>
</tr>
<tr>
<td>L</td>
<td>0x4C</td>
<td>76</td>
<td>Recommended</td>
<td>L key</td>
</tr>
<tr>
<td>M</td>
<td>0x4D</td>
<td>77</td>
<td>Recommended</td>
<td>M key</td>
</tr>
<tr>
<td>N</td>
<td>0x4E</td>
<td>78</td>
<td>Recommended</td>
<td>N key</td>
</tr>
<tr>
<td>O</td>
<td>0x4F</td>
<td>79</td>
<td>Recommended</td>
<td>O key</td>
</tr>
<tr>
<td>P</td>
<td>0x50</td>
<td>80</td>
<td>Recommended</td>
<td>P key</td>
</tr>
<tr>
<td>Q</td>
<td>0x51</td>
<td>81</td>
<td>Recommended</td>
<td>Q key</td>
</tr>
<tr>
<td>R</td>
<td>0x52</td>
<td>82</td>
<td>Recommended</td>
<td>R key</td>
</tr>
<tr>
<td>S</td>
<td>0x53</td>
<td>83</td>
<td>Recommended</td>
<td>S key</td>
</tr>
<tr>
<td>T</td>
<td>0x54</td>
<td>84</td>
<td>Recommended</td>
<td>T key</td>
</tr>
<tr>
<td>U</td>
<td>0x55</td>
<td>85</td>
<td>Recommended</td>
<td>U key</td>
</tr>
<tr>
<td>V</td>
<td>0x56</td>
<td>86</td>
<td>Recommended</td>
<td>V key</td>
</tr>
<tr>
<td>W</td>
<td>0x57</td>
<td>87</td>
<td>Recommended</td>
<td>W key</td>
</tr>
<tr>
<td>X</td>
<td>0x58</td>
<td>88</td>
<td>Recommended</td>
<td>X key</td>
</tr>
<tr>
<td>Y</td>
<td>0x59</td>
<td>89</td>
<td>Recommended</td>
<td>Y key</td>
</tr>
<tr>
<td>Z</td>
<td>0x5A</td>
<td>90</td>
<td>Recommended</td>
<td>Z key</td>
</tr>
<tr>
<td><code>VK_NUMPAD0</code></td>
<td>0x60</td>
<td>96</td>
<td>Recommended, if numpad present</td>
<td>Numeric keypad 0 key</td>
</tr>
<tr>
<td><code>VK_NUMPAD1</code></td>
<td>0x61</td>
<td>97</td>
<td>Recommended, if numpad present</td>
<td>Numeric keypad 1 key</td>
</tr>
<tr>
<td><code>VK_NUMPAD2</code></td>
<td>0x62</td>
<td>98</td>
<td>Recommended, if numpad present</td>
<td>Numeric keypad 2 key</td>
</tr>
<tr>
<td><code>VK_NUMPAD3</code></td>
<td>0x63</td>
<td>99</td>
<td>Recommended, if numpad present</td>
<td>Numeric keypad 3 key</td>
</tr>
<tr>
<td><code>VK_NUMPAD4</code></td>
<td>0x64</td>
<td>100</td>
<td>Recommended, if numpad present</td>
<td>Numeric keypad 4 key</td>
</tr>
<tr>
<td><code>VK_NUMPAD5</code></td>
<td>0x65</td>
<td>101</td>
<td>Recommended, if numpad present</td>
<td>Numeric keypad 5 key</td>
</tr>
<tr>
<td><code>VK_NUMPAD6</code></td>
<td>0x66</td>
<td>102</td>
<td>Recommended, if numpad present</td>
<td>Numeric keypad 6 key</td>
</tr>
<tr>
<td><code>VK_NUMPAD7</code></td>
<td>0x67</td>
<td>103</td>
<td>Recommended, if numpad present</td>
<td>Numeric keypad 7 key</td>
</tr>
<tr>
<td><code>VK_NUMPAD8</code></td>
<td>0x68</td>
<td>104</td>
<td>Recommended, if numpad present</td>
<td>Numeric keypad 8 key</td>
</tr>
<tr>
<td><code>VK_NUMPAD9</code></td>
<td>0x69</td>
<td>105</td>
<td>Recommended, if numpad present</td>
<td>Numeric keypad 9 key</td>
</tr>
<tr>
<td><code>VK_MULTIPLY</code></td>
<td>0x6A</td>
<td>106</td>
<td>Recommended, if numpad present</td>
<td>Multiply key</td>
</tr>
<tr>
<td><code>VK_ADD</code></td>
<td>0x6B</td>
<td>107</td>
<td>Recommended, if numpad present</td>
<td>Add key</td>
</tr>
<tr>
<td><code>VK_SEPARATOR</code></td>
<td>0x6C</td>
<td>108</td>
<td>Recommended, if numpad present</td>
<td>Separator key</td>
</tr>
<tr>
<td><code>VK_SUBTRACT</code></td>
<td>0x6D</td>
<td>109</td>
<td>Recommended, if numpad present</td>
<td>Subtract key</td>
</tr>
<tr>
<td><code>VK_DECIMAL</code></td>
<td>0x6E</td>
<td>110</td>
<td>Recommended, if numpad present</td>
<td>Decimal key</td>
</tr>
<tr>
<td><code>VK_DIVIDE</code></td>
<td>0x6F</td>
<td>111</td>
<td>Recommended, if numpad present</td>
<td>Divide key</td>
</tr>
<tr>
<td><code>VK_F1</code></td>
<td>0x70</td>
<td>112</td>
<td>Recommended</td>
<td>F1 key</td>
</tr>
<tr>
<td><code>VK_F2</code></td>
<td>0x71</td>
<td>113</td>
<td>Recommended</td>
<td>F2 key</td>
</tr>
<tr>
<td><code>VK_F3</code></td>
<td>0x72</td>
<td>114</td>
<td>Recommended</td>
<td>F3 key</td>
</tr>
<tr>
<td><code>VK_F4</code></td>
<td>0x73</td>
<td>115</td>
<td>Recommended</td>
<td>F4 key</td>
</tr>
<tr>
<td><code>VK_F5</code></td>
<td>0x74</td>
<td>116</td>
<td>Recommended</td>
<td>F5 key</td>
</tr>
<tr>
<td><code>VK_F6</code></td>
<td>0x75</td>
<td>117</td>
<td>Recommended</td>
<td>F6 key</td>
</tr>
<tr>
<td><code>VK_F7</code></td>
<td>0x76</td>
<td>118</td>
<td>Recommended</td>
<td>F7 key</td>
</tr>
<tr>
<td><code>VK_F8</code></td>
<td>0x77</td>
<td>119</td>
<td>Recommended</td>
<td>F8 key</td>
</tr>
<tr>
<td><code>VK_F9</code></td>
<td>0x78</td>
<td>120</td>
<td>Recommended</td>
<td>F9 key</td>
</tr>
<tr>
<td><code>VK_F10</code></td>
<td>0x79</td>
<td>121</td>
<td>Recommended</td>
<td>F10 key</td>
</tr>
<tr>
<td><code>VK_F11</code></td>
<td>0x7A</td>
<td>122</td>
<td>Recommended</td>
<td>F11 key</td>
</tr>
<tr>
<td><code>VK_F12</code></td>
<td>0x7B</td>
<td>123</td>
<td>Recommended</td>
<td>F12 key</td>
</tr>
<tr>
<td>Usable, but layout-dependent: Real keys, but labeling/position varies by keyboard layout.</td>
</tr>
<tr>
<td><code>VK_OEM_1</code></td>
<td>0xBA</td>
<td>186</td>
<td>Layout-dependent</td>
<td>It can vary by keyboard. For the US ANSI keyboard , the Semiсolon and Colon key</td>
</tr>
<tr>
<td><code>VK_OEM_PLUS</code></td>
<td>0xBB</td>
<td>187</td>
<td>Layout-dependent</td>
<td>For any country/region, the Equals and Plus key</td>
</tr>
<tr>
<td><code>VK_OEM_COMMA</code></td>
<td>0xBC</td>
<td>188</td>
<td>Layout-dependent</td>
<td>For any country/region, the Comma and Less Than key</td>
</tr>
<tr>
<td><code>VK_OEM_MINUS</code></td>
<td>0xBD</td>
<td>189</td>
<td>Layout-dependent</td>
<td>For any country/region, the Dash and Underscore key</td>
</tr>
<tr>
<td><code>VK_OEM_PERIOD</code></td>
<td>0xBE</td>
<td>190</td>
<td>Layout-dependent</td>
<td>For any country/region, the Period and Greater Than key</td>
</tr>
<tr>
<td><code>VK_OEM_2</code></td>
<td>0xBF</td>
<td>191</td>
<td>Layout-dependent</td>
<td>It can vary by keyboard. For the US ANSI keyboard, the Forward Slash and Question Mark key</td>
</tr>
<tr>
<td><code>VK_OEM_3</code></td>
<td>0xC0</td>
<td>192</td>
<td>Layout-dependent</td>
<td>It can vary by keyboard. For the US ANSI keyboard, the Grave Accent and Tilde key</td>
</tr>
<tr>
<td><code>VK_OEM_4</code></td>
<td>0xDB</td>
<td>219</td>
<td>Layout-dependent</td>
<td>It can vary by keyboard. For the US ANSI keyboard, the Left Brace key</td>
</tr>
<tr>
<td><code>VK_OEM_5</code></td>
<td>0xDC</td>
<td>220</td>
<td>Layout-dependent</td>
<td>It can vary by keyboard. For the US ANSI keyboard, the Backslash and Pipe key</td>
</tr>
<tr>
<td><code>VK_OEM_6</code></td>
<td>0xDD</td>
<td>221</td>
<td>Layout-dependent</td>
<td>It can vary by keyboard. For the US ANSI keyboard, the Right Brace key</td>
</tr>
<tr>
<td><code>VK_OEM_7</code></td>
<td>0xDE</td>
<td>222</td>
<td>Layout-dependent</td>
<td>It can vary by keyboard. For the US ANSI keyboard, the Apostrophe and Double Quotation Mark key</td>
</tr>
<tr>
<td><code>VK_OEM_8</code></td>
<td>0xDF</td>
<td>223</td>
<td>Layout-dependent</td>
<td>It can vary by keyboard. For the Canadian CSA keyboard, the Right Ctrl key</td>
</tr>
<tr>
<td><code>VK_OEM_102</code></td>
<td>0xE2</td>
<td>226</td>
<td>Layout-dependent</td>
<td>It can vary by keyboard. For the European ISO keyboard, the Backslash and Pipe key</td>
</tr>
<tr>
<td>Valid, but poor candidate: Windows-defined, but awkward, optional, or likely to conflict.</td>
</tr>
<tr>
<td><code>VK_CANCEL</code></td>
<td>0x03</td>
<td>3</td>
<td>Uncommon/awkward</td>
<td>Control-break processing</td>
</tr>
<tr>
<td><code>VK_CLEAR</code></td>
<td>0x0C</td>
<td>12</td>
<td>Uncommon/awkward</td>
<td>Clear key</td>
</tr>
<tr>
<td><code>VK_PAUSE</code></td>
<td>0x13</td>
<td>19</td>
<td>Uncommon/awkward</td>
<td>Pause key</td>
</tr>
<tr>
<td><code>VK_CAPITAL</code></td>
<td>0x14</td>
<td>20</td>
<td>Uncommon/awkward</td>
<td>Caps lock key</td>
</tr>
<tr>
<td><code>VK_SELECT</code></td>
<td>0x29</td>
<td>41</td>
<td>Uncommon/awkward</td>
<td>Select key</td>
</tr>
<tr>
<td><code>VK_PRINT</code></td>
<td>0x2A</td>
<td>42</td>
<td>Uncommon/awkward</td>
<td>Print key</td>
</tr>
<tr>
<td><code>VK_EXECUTE</code></td>
<td>0x2B</td>
<td>43</td>
<td>Uncommon/awkward</td>
<td>Execute key</td>
</tr>
<tr>
<td><code>VK_SNAPSHOT</code></td>
<td>0x2C</td>
<td>44</td>
<td>Uncommon/awkward</td>
<td>Print screen key</td>
</tr>
<tr>
<td><code>VK_HELP</code></td>
<td>0x2F</td>
<td>47</td>
<td>Uncommon/awkward</td>
<td>Help key</td>
</tr>
<tr>
<td><code>VK_LWIN</code></td>
<td>0x5B</td>
<td>91</td>
<td>OS-sensitive</td>
<td>Left Windows logo key</td>
</tr>
<tr>
<td><code>VK_RWIN</code></td>
<td>0x5C</td>
<td>92</td>
<td>OS-sensitive</td>
<td>Right Windows logo key</td>
</tr>
<tr>
<td><code>VK_APPS</code></td>
<td>0x5D</td>
<td>93</td>
<td>OS-sensitive</td>
<td>Application key</td>
</tr>
<tr>
<td><code>VK_SLEEP</code></td>
<td>0x5F</td>
<td>95</td>
<td>Optional hardware</td>
<td>Computer Sleep key</td>
</tr>
<tr>
<td><code>VK_F13</code></td>
<td>0x7C</td>
<td>124</td>
<td>Usually absent</td>
<td>F13 key</td>
</tr>
<tr>
<td><code>VK_F14</code></td>
<td>0x7D</td>
<td>125</td>
<td>Usually absent</td>
<td>F14 key</td>
</tr>
<tr>
<td><code>VK_F15</code></td>
<td>0x7E</td>
<td>126</td>
<td>Usually absent</td>
<td>F15 key</td>
</tr>
<tr>
<td><code>VK_F16</code></td>
<td>0x7F</td>
<td>127</td>
<td>Usually absent</td>
<td>F16 key</td>
</tr>
<tr>
<td><code>VK_F17</code></td>
<td>0x80</td>
<td>128</td>
<td>Usually absent</td>
<td>F17 key</td>
</tr>
<tr>
<td><code>VK_F18</code></td>
<td>0x81</td>
<td>129</td>
<td>Usually absent</td>
<td>F18 key</td>
</tr>
<tr>
<td><code>VK_F19</code></td>
<td>0x82</td>
<td>130</td>
<td>Usually absent</td>
<td>F19 key</td>
</tr>
<tr>
<td><code>VK_F20</code></td>
<td>0x83</td>
<td>131</td>
<td>Usually absent</td>
<td>F20 key</td>
</tr>
<tr>
<td><code>VK_F21</code></td>
<td>0x84</td>
<td>132</td>
<td>Usually absent</td>
<td>F21 key</td>
</tr>
<tr>
<td><code>VK_F22</code></td>
<td>0x85</td>
<td>133</td>
<td>Usually absent</td>
<td>F22 key</td>
</tr>
<tr>
<td><code>VK_F23</code></td>
<td>0x86</td>
<td>134</td>
<td>Usually absent</td>
<td>F23 key</td>
</tr>
<tr>
<td><code>VK_F24</code></td>
<td>0x87</td>
<td>135</td>
<td>Usually absent</td>
<td>F24 key</td>
</tr>
<tr>
<td><code>VK_NUMLOCK</code></td>
<td>0x90</td>
<td>144</td>
<td>Uncommon/awkward</td>
<td>Num lock key</td>
</tr>
<tr>
<td><code>VK_SCROLL</code></td>
<td>0x91</td>
<td>145</td>
<td>Uncommon/awkward</td>
<td>Scroll lock key</td>
</tr>
<tr>
<td><code>VK_BROWSER_BACK</code></td>
<td>0xA6</td>
<td>166</td>
<td>Optional hardware</td>
<td>Browser Back key</td>
</tr>
<tr>
<td><code>VK_BROWSER_FORWARD</code></td>
<td>0xA7</td>
<td>167</td>
<td>Optional hardware</td>
<td>Browser Forward key</td>
</tr>
<tr>
<td><code>VK_BROWSER_REFRESH</code></td>
<td>0xA8</td>
<td>168</td>
<td>Optional hardware</td>
<td>Browser Refresh key</td>
</tr>
<tr>
<td><code>VK_BROWSER_STOP</code></td>
<td>0xA9</td>
<td>169</td>
<td>Optional hardware</td>
<td>Browser Stop key</td>
</tr>
<tr>
<td><code>VK_BROWSER_SEARCH</code></td>
<td>0xAA</td>
<td>170</td>
<td>Optional hardware</td>
<td>Browser Search key</td>
</tr>
<tr>
<td><code>VK_BROWSER_FAVORITES</code></td>
<td>0xAB</td>
<td>171</td>
<td>Optional hardware</td>
<td>Browser Favorites key</td>
</tr>
<tr>
<td><code>VK_BROWSER_HOME</code></td>
<td>0xAC</td>
<td>172</td>
<td>Optional hardware</td>
<td>Browser Start and Home key</td>
</tr>
<tr>
<td><code>VK_VOLUME_MUTE</code></td>
<td>0xAD</td>
<td>173</td>
<td>Optional hardware</td>
<td>Volume Mute key</td>
</tr>
<tr>
<td><code>VK_VOLUME_DOWN</code></td>
<td>0xAE</td>
<td>174</td>
<td>Optional hardware</td>
<td>Volume Down key</td>
</tr>
<tr>
<td><code>VK_VOLUME_UP</code></td>
<td>0xAF</td>
<td>175</td>
<td>Optional hardware</td>
<td>Volume Up key</td>
</tr>
<tr>
<td><code>VK_MEDIA_NEXT_TRACK</code></td>
<td>0xB0</td>
<td>176</td>
<td>Optional hardware</td>
<td>Next Track key</td>
</tr>
<tr>
<td><code>VK_MEDIA_PREV_TRACK</code></td>
<td>0xB1</td>
<td>177</td>
<td>Optional hardware</td>
<td>Previous Track key</td>
</tr>
<tr>
<td><code>VK_MEDIA_STOP</code></td>
<td>0xB2</td>
<td>178</td>
<td>Optional hardware</td>
<td>Stop Media key</td>
</tr>
<tr>
<td><code>VK_MEDIA_PLAY_PAUSE</code></td>
<td>0xB3</td>
<td>179</td>
<td>Optional hardware</td>
<td>Play/Pause Media key</td>
</tr>
<tr>
<td><code>VK_LAUNCH_MAIL</code></td>
<td>0xB4</td>
<td>180</td>
<td>Optional hardware</td>
<td>Start Mail key</td>
</tr>
<tr>
<td><code>VK_LAUNCH_MEDIA_SELECT</code></td>
<td>0xB5</td>
<td>181</td>
<td>Optional hardware</td>
<td>Select Media key</td>
</tr>
<tr>
<td><code>VK_LAUNCH_APP1</code></td>
<td>0xB6</td>
<td>182</td>
<td>Optional hardware</td>
<td>Start Application 1 key</td>
</tr>
<tr>
<td><code>VK_LAUNCH_APP2</code></td>
<td>0xB7</td>
<td>183</td>
<td>Optional hardware</td>
<td>Start Application 2 key</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_A</code></td>
<td>0xC3</td>
<td>195</td>
<td>Controller-specific</td>
<td>Gamepad A button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_B</code></td>
<td>0xC4</td>
<td>196</td>
<td>Controller-specific</td>
<td>Gamepad B button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_X</code></td>
<td>0xC5</td>
<td>197</td>
<td>Controller-specific</td>
<td>Gamepad X button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_Y</code></td>
<td>0xC6</td>
<td>198</td>
<td>Controller-specific</td>
<td>Gamepad Y button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_RIGHT_SHOULDER</code></td>
<td>0xC7</td>
<td>199</td>
<td>Controller-specific</td>
<td>Gamepad Right Shoulder button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_LEFT_SHOULDER</code></td>
<td>0xC8</td>
<td>200</td>
<td>Controller-specific</td>
<td>Gamepad Left Shoulder button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_LEFT_TRIGGER</code></td>
<td>0xC9</td>
<td>201</td>
<td>Controller-specific</td>
<td>Gamepad Left Trigger button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_RIGHT_TRIGGER</code></td>
<td>0xCA</td>
<td>202</td>
<td>Controller-specific</td>
<td>Gamepad Right Trigger button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_DPAD_UP</code></td>
<td>0xCB</td>
<td>203</td>
<td>Controller-specific</td>
<td>Gamepad D-pad Up button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_DPAD_DOWN</code></td>
<td>0xCC</td>
<td>204</td>
<td>Controller-specific</td>
<td>Gamepad D-pad Down button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_DPAD_LEFT</code></td>
<td>0xCD</td>
<td>205</td>
<td>Controller-specific</td>
<td>Gamepad D-pad Left button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_DPAD_RIGHT</code></td>
<td>0xCE</td>
<td>206</td>
<td>Controller-specific</td>
<td>Gamepad D-pad Right button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_MENU</code></td>
<td>0xCF</td>
<td>207</td>
<td>Controller-specific</td>
<td>Gamepad Menu/Start button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_VIEW</code></td>
<td>0xD0</td>
<td>208</td>
<td>Controller-specific</td>
<td>Gamepad View/Back button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON</code></td>
<td>0xD1</td>
<td>209</td>
<td>Controller-specific</td>
<td>Gamepad Left Thumbstick button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON</code></td>
<td>0xD2</td>
<td>210</td>
<td>Controller-specific</td>
<td>Gamepad Right Thumbstick button</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_LEFT_THUMBSTICK_UP</code></td>
<td>0xD3</td>
<td>211</td>
<td>Controller-specific</td>
<td>Gamepad Left Thumbstick up</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_LEFT_THUMBSTICK_DOWN</code></td>
<td>0xD4</td>
<td>212</td>
<td>Controller-specific</td>
<td>Gamepad Left Thumbstick down</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT</code></td>
<td>0xD5</td>
<td>213</td>
<td>Controller-specific</td>
<td>Gamepad Left Thumbstick right</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_LEFT_THUMBSTICK_LEFT</code></td>
<td>0xD6</td>
<td>214</td>
<td>Controller-specific</td>
<td>Gamepad Left Thumbstick left</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_RIGHT_THUMBSTICK_UP</code></td>
<td>0xD7</td>
<td>215</td>
<td>Controller-specific</td>
<td>Gamepad Right Thumbstick up</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN</code></td>
<td>0xD8</td>
<td>216</td>
<td>Controller-specific</td>
<td>Gamepad Right Thumbstick down</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT</code></td>
<td>0xD9</td>
<td>217</td>
<td>Controller-specific</td>
<td>Gamepad Right Thumbstick right</td>
</tr>
<tr>
<td><code>VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT</code></td>
<td>0xDA</td>
<td>218</td>
<td>Controller-specific</td>
<td>Gamepad Right Thumbstick left</td>
</tr>
<tr>
<td><code>VK_ATTN</code></td>
<td>0xF6</td>
<td>246</td>
<td>Uncommon/awkward</td>
<td>Attn key</td>
</tr>
<tr>
<td><code>VK_CRSEL</code></td>
<td>0xF7</td>
<td>247</td>
<td>Uncommon/awkward</td>
<td>CrSel key</td>
</tr>
<tr>
<td><code>VK_EXSEL</code></td>
<td>0xF8</td>
<td>248</td>
<td>Uncommon/awkward</td>
<td>ExSel key</td>
</tr>
<tr>
<td><code>VK_EREOF</code></td>
<td>0xF9</td>
<td>249</td>
<td>Uncommon/awkward</td>
<td>Erase EOF key</td>
</tr>
<tr>
<td><code>VK_PLAY</code></td>
<td>0xFA</td>
<td>250</td>
<td>Uncommon/awkward</td>
<td>Play key</td>
</tr>
<tr>
<td><code>VK_ZOOM</code></td>
<td>0xFB</td>
<td>251</td>
<td>Uncommon/awkward</td>
<td>Zoom key</td>
</tr>
<tr>
<td><code>VK_PA1</code></td>
<td>0xFD</td>
<td>253</td>
<td>Uncommon/awkward</td>
<td>PA1 key</td>
</tr>
<tr>
<td><code>VK_OEM_CLEAR</code></td>
<td>0xFE</td>
<td>254</td>
<td>Uncommon/awkward</td>
<td>Clear key</td>
</tr>
</tbody>
</table>
]]></description><link>https://community.notepad-plus-plus.org/topic/27502/virtual-key-codes-update</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Apr 2026 04:14:48 GMT</lastBuildDate><atom:link href="https://community.notepad-plus-plus.org/topic/27502.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 Apr 2026 20:40:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Virtual Key Codes Update on Mon, 20 Apr 2026 23:47:17 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="https://community.notepad-plus-plus.org/uid/9968">@pbarney</a> said in <a href="/post/105292">Virtual Key Codes Update</a>:</p>
<blockquote>
<p dir="auto">It mentions a “complete list” which can be found on the repo at keys.h , but that file is far from complete.</p>
</blockquote>
<p dir="auto">Good point.  That phraseology was left over from the pre-2017 wiki-based manual, which was known to be out-of-date and innacurate, but it was a monumental task to update that, and some things weren’t always reworded in the best manner.</p>
<p dir="auto">The modern User Manual does, however, <em>also</em> point to a few posts here, which in turn lead to our <a href="/topic/19734/faq-list-of-notepad-key-combinations-available-for-shortcuts">FAQ: FAQ: List of Notepad++ key combinations, available for shortcuts</a>.  I should remove the word “complete” from the UM, and point directly to the FAQ.  However, you might want to double check your list against the FAQ, to let us know if the FAQ is missing any.</p>
<p dir="auto">Please note that many in your table, like the VK_GAMEPAD*, are technically “reserved” in the official list, and are dependent on Windows keyboard settings and localization</p>
<p dir="auto">A more-complete list is found in <code>namedKeyArray[]</code> in <a href="https://github.com/notepad-plus-plus/notepad-plus-plus/blob/e49ab3219ed48f1c7cbc61c60c50d031e607821a/PowerEditor/src/WinControls/shortcut/shortcut.cpp#L35-L221" rel="nofollow ugc">shortcut.cpp</a> – in that, that is the list that modern Notepad++ now uses when generating the list of available keys in Shortcuts (and it uses win32 API calls to ensure that for reserved and oem-specific keycodes, it provides the right name based on your current Windows keyboard settings) – so it’s a complete list of what Notepad++ actually allows via the GUI.</p>
<hr />
<p dir="auto"><em>update</em>: <a href="https://npp-user-manual.org/docs/config-files/#virtual-key-number" rel="nofollow ugc">https://npp-user-manual.org/docs/config-files/#virtual-key-number</a> has been updated to stop calling <code>keys.h</code> “complete”; it now links to a section of the codebase in <code>shortcut.cpp</code> that lists all the keycodes available to the Shortcut Mapper GUI, and links to the official MS documentation.  Also, the text links to the FAQ rather than the individual posts for finding keycodes.  And it explains how to use <code>calc.exe</code> to convert the hex listed in the source code or the MS docs into decimal for use in the <code>key="###"</code> attributes in <code>shortcuts.xml</code>.</p>
]]></description><link>https://community.notepad-plus-plus.org/post/105293</link><guid isPermaLink="true">https://community.notepad-plus-plus.org/post/105293</guid><dc:creator><![CDATA[PeterJones]]></dc:creator><pubDate>Mon, 20 Apr 2026 23:47:17 GMT</pubDate></item></channel></rss>