This commit is contained in:
commit
bc8ff5f44a
6520 changed files with 426985 additions and 0 deletions
20
windows/exploits/ZIBE/pyreadline/keysyms/__init__.py
Normal file
20
windows/exploits/ZIBE/pyreadline/keysyms/__init__.py
Normal file
|
@ -0,0 +1,20 @@
|
|||
import sys
|
||||
|
||||
success = False
|
||||
in_ironpython = u"IronPython" in sys.version
|
||||
|
||||
if in_ironpython:
|
||||
try:
|
||||
from ironpython_keysyms import *
|
||||
success = True
|
||||
except ImportError, x:
|
||||
raise
|
||||
else:
|
||||
try:
|
||||
from keysyms import *
|
||||
success = True
|
||||
except ImportError, x:
|
||||
pass
|
||||
|
||||
if not success:
|
||||
raise ImportError(u"Could not import keysym for local pythonversion", x)
|
127
windows/exploits/ZIBE/pyreadline/keysyms/common.py
Normal file
127
windows/exploits/ZIBE/pyreadline/keysyms/common.py
Normal file
|
@ -0,0 +1,127 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#*****************************************************************************
|
||||
# Copyright (C) 2003-2006 Gary Bishop.
|
||||
# Copyright (C) 2006 Jorgen Stenarson. <jorgen.stenarson@bostream.nu>
|
||||
#
|
||||
# Distributed under the terms of the BSD License. The full license is in
|
||||
# the file COPYING, distributed as part of this software.
|
||||
#*****************************************************************************
|
||||
# table for translating virtual keys to X windows key symbols
|
||||
|
||||
try:
|
||||
set
|
||||
except NameError:
|
||||
from sets import Set as set
|
||||
|
||||
from pyreadline.unicode_helper import ensure_unicode
|
||||
|
||||
validkey =set([u'cancel', u'backspace', u'tab', u'clear',
|
||||
u'return', u'shift_l', u'control_l', u'alt_l',
|
||||
u'pause', u'caps_lock', u'escape', u'space',
|
||||
u'prior', u'next', u'end', u'home',
|
||||
u'left', u'up', u'right', u'down',
|
||||
u'select', u'print', u'execute', u'snapshot',
|
||||
u'insert', u'delete', u'help', u'f1',
|
||||
u'f2', u'f3', u'f4', u'f5',
|
||||
u'f6', u'f7', u'f8', u'f9',
|
||||
u'f10', u'f11', u'f12', u'f13',
|
||||
u'f14', u'f15', u'f16', u'f17',
|
||||
u'f18', u'f19', u'f20', u'f21',
|
||||
u'f22', u'f23', u'f24', u'num_lock',
|
||||
u'scroll_lock', u'vk_apps', u'vk_processkey',u'vk_attn',
|
||||
u'vk_crsel', u'vk_exsel', u'vk_ereof', u'vk_play',
|
||||
u'vk_zoom', u'vk_noname', u'vk_pa1', u'vk_oem_clear',
|
||||
u'numpad0', u'numpad1', u'numpad2', u'numpad3',
|
||||
u'numpad4', u'numpad5', u'numpad6', u'numpad7',
|
||||
u'numpad8', u'numpad9', u'divide', u'multiply',
|
||||
u'add', u'subtract', u'vk_decimal'])
|
||||
|
||||
escape_sequence_to_special_key = {u"\\e[a" : u"up", u"\\e[b" : u"down", u"del" : u"delete"}
|
||||
|
||||
class KeyPress(object):
|
||||
def __init__(self, char=u"", shift=False, control=False, meta=False, keyname=u""):
|
||||
if control or meta or shift:
|
||||
char = char.upper()
|
||||
self.info = dict(char=char,
|
||||
shift=shift,
|
||||
control=control,
|
||||
meta=meta,
|
||||
keyname=keyname)
|
||||
|
||||
def create(name):
|
||||
def get(self):
|
||||
return self.info[name]
|
||||
|
||||
def set(self, value):
|
||||
self.info[name] = value
|
||||
return property(get, set)
|
||||
char = create(u"char")
|
||||
shift = create(u"shift")
|
||||
control = create(u"control")
|
||||
meta = create(u"meta")
|
||||
keyname = create(u"keyname")
|
||||
|
||||
def __repr__(self):
|
||||
return u"(%s,%s,%s,%s)"%tuple(map(ensure_unicode, self.tuple()))
|
||||
|
||||
def tuple(self):
|
||||
if self.keyname:
|
||||
return (self.control, self.meta, self.shift, self.keyname)
|
||||
else:
|
||||
if self.control or self.meta or self.shift:
|
||||
return (self.control, self.meta, self.shift, self.char.upper())
|
||||
else:
|
||||
return (self.control, self.meta, self.shift, self.char)
|
||||
|
||||
def __eq__(self, other):
|
||||
if isinstance(other, KeyPress):
|
||||
s = self.tuple()
|
||||
o = other.tuple()
|
||||
return s == o
|
||||
else:
|
||||
return False
|
||||
|
||||
def make_KeyPress_from_keydescr(keydescr):
|
||||
keyinfo = KeyPress()
|
||||
if len(keydescr) > 2 and keydescr[:1] == u'"' and keydescr[-1:] == u'"':
|
||||
keydescr = keydescr[1:-1]
|
||||
|
||||
while 1:
|
||||
lkeyname = keydescr.lower()
|
||||
if lkeyname.startswith(u'control-'):
|
||||
keyinfo.control = True
|
||||
keydescr = keydescr[8:]
|
||||
elif lkeyname.startswith(u'ctrl-'):
|
||||
keyinfo.control = True
|
||||
keydescr = keydescr[5:]
|
||||
elif keydescr.lower().startswith(u'\\c-'):
|
||||
keyinfo.control = True
|
||||
keydescr = keydescr[3:]
|
||||
elif keydescr.lower().startswith(u'\\m-'):
|
||||
keyinfo.meta = True
|
||||
keydescr = keydescr[3:]
|
||||
elif keydescr in escape_sequence_to_special_key:
|
||||
keydescr = escape_sequence_to_special_key[keydescr]
|
||||
elif lkeyname.startswith(u'meta-'):
|
||||
keyinfo.meta = True
|
||||
keydescr = keydescr[5:]
|
||||
elif lkeyname.startswith(u'alt-'):
|
||||
keyinfo.meta = True
|
||||
keydescr = keydescr[4:]
|
||||
elif lkeyname.startswith(u'shift-'):
|
||||
keyinfo.shift = True
|
||||
keydescr = keydescr[6:]
|
||||
else:
|
||||
if len(keydescr) > 1:
|
||||
if keydescr.strip().lower() in validkey:
|
||||
keyinfo.keyname = keydescr.strip().lower()
|
||||
keyinfo.char = ""
|
||||
else:
|
||||
raise IndexError(u"Not a valid key: '%s'"%keydescr)
|
||||
else:
|
||||
keyinfo.char = keydescr
|
||||
return keyinfo
|
||||
|
||||
if __name__ == u"__main__":
|
||||
import startup
|
||||
|
202
windows/exploits/ZIBE/pyreadline/keysyms/ironpython_keysyms.py
Normal file
202
windows/exploits/ZIBE/pyreadline/keysyms/ironpython_keysyms.py
Normal file
|
@ -0,0 +1,202 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#*****************************************************************************
|
||||
# Copyright (C) 2003-2006 Gary Bishop.
|
||||
# Copyright (C) 2006 Jorgen Stenarson. <jorgen.stenarson@bostream.nu>
|
||||
#
|
||||
# Distributed under the terms of the BSD License. The full license is in
|
||||
# the file COPYING, distributed as part of this software.
|
||||
#*****************************************************************************
|
||||
import System
|
||||
from common import validkey, KeyPress, make_KeyPress_from_keydescr
|
||||
|
||||
c32 = System.ConsoleKey
|
||||
Shift = System.ConsoleModifiers.Shift
|
||||
Control = System.ConsoleModifiers.Control
|
||||
Alt = System.ConsoleModifiers.Alt
|
||||
# table for translating virtual keys to X windows key symbols
|
||||
code2sym_map = {#c32.CANCEL: u'Cancel',
|
||||
c32.Backspace: u'BackSpace',
|
||||
c32.Tab: u'Tab',
|
||||
c32.Clear: u'Clear',
|
||||
c32.Enter: u'Return',
|
||||
# c32.Shift: u'Shift_L',
|
||||
# c32.Control: u'Control_L',
|
||||
# c32.Menu: u'Alt_L',
|
||||
c32.Pause: u'Pause',
|
||||
# c32.Capital: u'Caps_Lock',
|
||||
c32.Escape: u'Escape',
|
||||
# c32.Space: u'space',
|
||||
c32.PageUp: u'Prior',
|
||||
c32.PageDown: u'Next',
|
||||
c32.End: u'End',
|
||||
c32.Home: u'Home',
|
||||
c32.LeftArrow: u'Left',
|
||||
c32.UpArrow: u'Up',
|
||||
c32.RightArrow: u'Right',
|
||||
c32.DownArrow: u'Down',
|
||||
c32.Select: u'Select',
|
||||
c32.Print: u'Print',
|
||||
c32.Execute: u'Execute',
|
||||
# c32.Snapshot: u'Snapshot',
|
||||
c32.Insert: u'Insert',
|
||||
c32.Delete: u'Delete',
|
||||
c32.Help: u'Help',
|
||||
c32.F1: u'F1',
|
||||
c32.F2: u'F2',
|
||||
c32.F3: u'F3',
|
||||
c32.F4: u'F4',
|
||||
c32.F5: u'F5',
|
||||
c32.F6: u'F6',
|
||||
c32.F7: u'F7',
|
||||
c32.F8: u'F8',
|
||||
c32.F9: u'F9',
|
||||
c32.F10: u'F10',
|
||||
c32.F11: u'F11',
|
||||
c32.F12: u'F12',
|
||||
c32.F13: u'F13',
|
||||
c32.F14: u'F14',
|
||||
c32.F15: u'F15',
|
||||
c32.F16: u'F16',
|
||||
c32.F17: u'F17',
|
||||
c32.F18: u'F18',
|
||||
c32.F19: u'F19',
|
||||
c32.F20: u'F20',
|
||||
c32.F21: u'F21',
|
||||
c32.F22: u'F22',
|
||||
c32.F23: u'F23',
|
||||
c32.F24: u'F24',
|
||||
# c32.Numlock: u'Num_Lock,',
|
||||
# c32.Scroll: u'Scroll_Lock',
|
||||
# c32.Apps: u'VK_APPS',
|
||||
# c32.ProcesskeY: u'VK_PROCESSKEY',
|
||||
# c32.Attn: u'VK_ATTN',
|
||||
# c32.Crsel: u'VK_CRSEL',
|
||||
# c32.Exsel: u'VK_EXSEL',
|
||||
# c32.Ereof: u'VK_EREOF',
|
||||
# c32.Play: u'VK_PLAY',
|
||||
# c32.Zoom: u'VK_ZOOM',
|
||||
# c32.Noname: u'VK_NONAME',
|
||||
# c32.Pa1: u'VK_PA1',
|
||||
c32.OemClear: u'VK_OEM_CLEAR',
|
||||
c32.NumPad0: u'NUMPAD0',
|
||||
c32.NumPad1: u'NUMPAD1',
|
||||
c32.NumPad2: u'NUMPAD2',
|
||||
c32.NumPad3: u'NUMPAD3',
|
||||
c32.NumPad4: u'NUMPAD4',
|
||||
c32.NumPad5: u'NUMPAD5',
|
||||
c32.NumPad6: u'NUMPAD6',
|
||||
c32.NumPad7: u'NUMPAD7',
|
||||
c32.NumPad8: u'NUMPAD8',
|
||||
c32.NumPad9: u'NUMPAD9',
|
||||
c32.Divide: u'Divide',
|
||||
c32.Multiply: u'Multiply',
|
||||
c32.Add: u'Add',
|
||||
c32.Subtract: u'Subtract',
|
||||
c32.Decimal: u'VK_DECIMAL'
|
||||
}
|
||||
|
||||
# function to handle the mapping
|
||||
def make_keysym(keycode):
|
||||
try:
|
||||
sym = code2sym_map[keycode]
|
||||
except KeyError:
|
||||
sym = u''
|
||||
return sym
|
||||
|
||||
sym2code_map = {}
|
||||
for code,sym in code2sym_map.iteritems():
|
||||
sym2code_map[sym.lower()] = code
|
||||
|
||||
def key_text_to_keyinfo(keytext):
|
||||
u'''Convert a GNU readline style textual description of a key to keycode with modifiers'''
|
||||
if keytext.startswith('"'): # "
|
||||
return keyseq_to_keyinfo(keytext[1:-1])
|
||||
else:
|
||||
return keyname_to_keyinfo(keytext)
|
||||
|
||||
|
||||
def char_to_keyinfo(char, control=False, meta=False, shift=False):
|
||||
vk = (ord(char))
|
||||
if vk & 0xffff == 0xffff:
|
||||
print u'VkKeyScan("%s") = %x' % (char, vk)
|
||||
raise ValueError, u'bad key'
|
||||
if vk & 0x100:
|
||||
shift = True
|
||||
if vk & 0x200:
|
||||
control = True
|
||||
if vk & 0x400:
|
||||
meta = True
|
||||
return (control, meta, shift, vk & 0xff)
|
||||
|
||||
def keyname_to_keyinfo(keyname):
|
||||
control = False
|
||||
meta = False
|
||||
shift = False
|
||||
|
||||
while 1:
|
||||
lkeyname = keyname.lower()
|
||||
if lkeyname.startswith(u'control-'):
|
||||
control = True
|
||||
keyname = keyname[8:]
|
||||
elif lkeyname.startswith(u'ctrl-'):
|
||||
control = True
|
||||
keyname = keyname[5:]
|
||||
elif lkeyname.startswith(u'meta-'):
|
||||
meta = True
|
||||
keyname = keyname[5:]
|
||||
elif lkeyname.startswith(u'alt-'):
|
||||
meta = True
|
||||
keyname = keyname[4:]
|
||||
elif lkeyname.startswith(u'shift-'):
|
||||
shift = True
|
||||
keyname = keyname[6:]
|
||||
else:
|
||||
if len(keyname) > 1:
|
||||
return (control, meta, shift, sym2code_map.get(keyname.lower(),u" "))
|
||||
else:
|
||||
return char_to_keyinfo(keyname, control, meta, shift)
|
||||
|
||||
def keyseq_to_keyinfo(keyseq):
|
||||
res = []
|
||||
control = False
|
||||
meta = False
|
||||
shift = False
|
||||
|
||||
while 1:
|
||||
if keyseq.startswith(u'\\C-'):
|
||||
control = True
|
||||
keyseq = keyseq[3:]
|
||||
elif keyseq.startswith(u'\\M-'):
|
||||
meta = True
|
||||
keyseq = keyseq[3:]
|
||||
elif keyseq.startswith(u'\\e'):
|
||||
res.append(char_to_keyinfo(u'\033', control, meta, shift))
|
||||
control = meta = shift = False
|
||||
keyseq = keyseq[2:]
|
||||
elif len(keyseq) >= 1:
|
||||
res.append(char_to_keyinfo(keyseq[0], control, meta, shift))
|
||||
control = meta = shift = False
|
||||
keyseq = keyseq[1:]
|
||||
else:
|
||||
return res[0]
|
||||
|
||||
def make_keyinfo(keycode, state):
|
||||
control = False
|
||||
meta =False
|
||||
shift = False
|
||||
return (control, meta, shift, keycode)
|
||||
|
||||
|
||||
def make_KeyPress(char, state, keycode):
|
||||
|
||||
shift = bool(int(state) & int(Shift))
|
||||
control = bool(int(state) & int(Control))
|
||||
meta = bool(int(state) & int(Alt))
|
||||
keyname = code2sym_map.get(keycode, u"").lower()
|
||||
if control and meta: #equivalent to altgr so clear flags
|
||||
control = False
|
||||
meta = False
|
||||
elif control:
|
||||
char = str(keycode)
|
||||
return KeyPress(char, shift, control, meta, keyname)
|
||||
|
133
windows/exploits/ZIBE/pyreadline/keysyms/keysyms.py
Normal file
133
windows/exploits/ZIBE/pyreadline/keysyms/keysyms.py
Normal file
|
@ -0,0 +1,133 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#*****************************************************************************
|
||||
# Copyright (C) 2003-2006 Gary Bishop.
|
||||
# Copyright (C) 2006 Jorgen Stenarson. <jorgen.stenarson@bostream.nu>
|
||||
#
|
||||
# Distributed under the terms of the BSD License. The full license is in
|
||||
# the file COPYING, distributed as part of this software.
|
||||
#*****************************************************************************
|
||||
import winconstants as c32
|
||||
from pyreadline.logger import log
|
||||
from ctypes import windll
|
||||
import ctypes
|
||||
# table for translating virtual keys to X windows key symbols
|
||||
|
||||
from common import validkey, KeyPress, make_KeyPress_from_keydescr
|
||||
|
||||
code2sym_map = {c32.VK_CANCEL: u'cancel',
|
||||
c32.VK_BACK: u'backspace',
|
||||
c32.VK_TAB: u'tab',
|
||||
c32.VK_CLEAR: u'clear',
|
||||
c32.VK_RETURN: u'return',
|
||||
c32.VK_SHIFT: u'shift_l',
|
||||
c32.VK_CONTROL: u'control_l',
|
||||
c32.VK_MENU: u'alt_l',
|
||||
c32.VK_PAUSE: u'pause',
|
||||
c32.VK_CAPITAL: u'caps_lock',
|
||||
c32.VK_ESCAPE: u'escape',
|
||||
c32.VK_SPACE: u'space',
|
||||
c32.VK_PRIOR: u'prior',
|
||||
c32.VK_NEXT: u'next',
|
||||
c32.VK_END: u'end',
|
||||
c32.VK_HOME: u'home',
|
||||
c32.VK_LEFT: u'left',
|
||||
c32.VK_UP: u'up',
|
||||
c32.VK_RIGHT: u'right',
|
||||
c32.VK_DOWN: u'down',
|
||||
c32.VK_SELECT: u'select',
|
||||
c32.VK_PRINT: u'print',
|
||||
c32.VK_EXECUTE: u'execute',
|
||||
c32.VK_SNAPSHOT: u'snapshot',
|
||||
c32.VK_INSERT: u'insert',
|
||||
c32.VK_DELETE: u'delete',
|
||||
c32.VK_HELP: u'help',
|
||||
c32.VK_F1: u'f1',
|
||||
c32.VK_F2: u'f2',
|
||||
c32.VK_F3: u'f3',
|
||||
c32.VK_F4: u'f4',
|
||||
c32.VK_F5: u'f5',
|
||||
c32.VK_F6: u'f6',
|
||||
c32.VK_F7: u'f7',
|
||||
c32.VK_F8: u'f8',
|
||||
c32.VK_F9: u'f9',
|
||||
c32.VK_F10: u'f10',
|
||||
c32.VK_F11: u'f11',
|
||||
c32.VK_F12: u'f12',
|
||||
c32.VK_F13: u'f13',
|
||||
c32.VK_F14: u'f14',
|
||||
c32.VK_F15: u'f15',
|
||||
c32.VK_F16: u'f16',
|
||||
c32.VK_F17: u'f17',
|
||||
c32.VK_F18: u'f18',
|
||||
c32.VK_F19: u'f19',
|
||||
c32.VK_F20: u'f20',
|
||||
c32.VK_F21: u'f21',
|
||||
c32.VK_F22: u'f22',
|
||||
c32.VK_F23: u'f23',
|
||||
c32.VK_F24: u'f24',
|
||||
c32.VK_NUMLOCK: u'num_lock,',
|
||||
c32.VK_SCROLL: u'scroll_lock',
|
||||
c32.VK_APPS: u'vk_apps',
|
||||
c32.VK_PROCESSKEY: u'vk_processkey',
|
||||
c32.VK_ATTN: u'vk_attn',
|
||||
c32.VK_CRSEL: u'vk_crsel',
|
||||
c32.VK_EXSEL: u'vk_exsel',
|
||||
c32.VK_EREOF: u'vk_ereof',
|
||||
c32.VK_PLAY: u'vk_play',
|
||||
c32.VK_ZOOM: u'vk_zoom',
|
||||
c32.VK_NONAME: u'vk_noname',
|
||||
c32.VK_PA1: u'vk_pa1',
|
||||
c32.VK_OEM_CLEAR: u'vk_oem_clear',
|
||||
c32.VK_NUMPAD0: u'numpad0',
|
||||
c32.VK_NUMPAD1: u'numpad1',
|
||||
c32.VK_NUMPAD2: u'numpad2',
|
||||
c32.VK_NUMPAD3: u'numpad3',
|
||||
c32.VK_NUMPAD4: u'numpad4',
|
||||
c32.VK_NUMPAD5: u'numpad5',
|
||||
c32.VK_NUMPAD6: u'numpad6',
|
||||
c32.VK_NUMPAD7: u'numpad7',
|
||||
c32.VK_NUMPAD8: u'numpad8',
|
||||
c32.VK_NUMPAD9: u'numpad9',
|
||||
c32.VK_DIVIDE: u'divide',
|
||||
c32.VK_MULTIPLY: u'multiply',
|
||||
c32.VK_ADD: u'add',
|
||||
c32.VK_SUBTRACT: u'subtract',
|
||||
c32.VK_DECIMAL: u'vk_decimal'
|
||||
}
|
||||
|
||||
VkKeyScan = windll.user32.VkKeyScanA
|
||||
|
||||
def char_to_keyinfo(char, control=False, meta=False, shift=False):
|
||||
k=KeyPress()
|
||||
vk = VkKeyScan(ord(char))
|
||||
if vk & 0xffff == 0xffff:
|
||||
print u'VkKeyScan("%s") = %x' % (char, vk)
|
||||
raise ValueError, u'bad key'
|
||||
if vk & 0x100:
|
||||
k.shift = True
|
||||
if vk & 0x200:
|
||||
k.control = True
|
||||
if vk & 0x400:
|
||||
k.meta = True
|
||||
k.char=chr(vk & 0xff)
|
||||
return k
|
||||
|
||||
def make_KeyPress(char, state, keycode):
|
||||
control = (state & (4+8)) != 0
|
||||
meta = (state & (1+2)) != 0
|
||||
shift = (state & 0x10) != 0
|
||||
if control and not meta:#Matches ctrl- chords should pass keycode as char
|
||||
char = chr(keycode)
|
||||
elif control and meta: #Matches alt gr and should just pass on char
|
||||
control = False
|
||||
meta = False
|
||||
try:
|
||||
keyname=code2sym_map[keycode]
|
||||
except KeyError:
|
||||
keyname = u""
|
||||
out = KeyPress(char, shift, control, meta, keyname)
|
||||
return out
|
||||
|
||||
if __name__==u"__main__":
|
||||
import startup
|
||||
|
171
windows/exploits/ZIBE/pyreadline/keysyms/winconstants.py
Normal file
171
windows/exploits/ZIBE/pyreadline/keysyms/winconstants.py
Normal file
|
@ -0,0 +1,171 @@
|
|||
#This file contains constants that are normally found in win32all
|
||||
#But included here to avoid the dependency
|
||||
|
||||
VK_LBUTTON=1
|
||||
VK_RBUTTON=2
|
||||
VK_CANCEL=3
|
||||
VK_MBUTTON=4
|
||||
VK_XBUTTON1=5
|
||||
VK_XBUTTON2=6
|
||||
VK_BACK=8
|
||||
VK_TAB=9
|
||||
VK_CLEAR=12
|
||||
VK_RETURN=13
|
||||
VK_SHIFT=16
|
||||
VK_CONTROL=17
|
||||
VK_MENU=18
|
||||
VK_PAUSE=19
|
||||
VK_CAPITAL=20
|
||||
VK_KANA=0x15
|
||||
VK_HANGEUL=0x15
|
||||
VK_HANGUL=0x15
|
||||
VK_JUNJA=0x17
|
||||
VK_FINAL=0x18
|
||||
VK_HANJA=0x19
|
||||
VK_KANJI=0x19
|
||||
VK_ESCAPE=0x1B
|
||||
VK_CONVERT=0x1C
|
||||
VK_NONCONVERT=0x1D
|
||||
VK_ACCEPT=0x1E
|
||||
VK_MODECHANGE=0x1F
|
||||
VK_SPACE=32
|
||||
VK_PRIOR=33
|
||||
VK_NEXT=34
|
||||
VK_END=35
|
||||
VK_HOME=36
|
||||
VK_LEFT=37
|
||||
VK_UP=38
|
||||
VK_RIGHT=39
|
||||
VK_DOWN=40
|
||||
VK_SELECT=41
|
||||
VK_PRINT=42
|
||||
VK_EXECUTE=43
|
||||
VK_SNAPSHOT=44
|
||||
VK_INSERT=45
|
||||
VK_DELETE=46
|
||||
VK_HELP=47
|
||||
VK_LWIN=0x5B
|
||||
VK_RWIN=0x5C
|
||||
VK_APPS=0x5D
|
||||
VK_SLEEP=0x5F
|
||||
VK_NUMPAD0=0x60
|
||||
VK_NUMPAD1=0x61
|
||||
VK_NUMPAD2=0x62
|
||||
VK_NUMPAD3=0x63
|
||||
VK_NUMPAD4=0x64
|
||||
VK_NUMPAD5=0x65
|
||||
VK_NUMPAD6=0x66
|
||||
VK_NUMPAD7=0x67
|
||||
VK_NUMPAD8=0x68
|
||||
VK_NUMPAD9=0x69
|
||||
VK_MULTIPLY=0x6A
|
||||
VK_ADD=0x6B
|
||||
VK_SEPARATOR=0x6C
|
||||
VK_SUBTRACT=0x6D
|
||||
VK_DECIMAL=0x6E
|
||||
VK_DIVIDE=0x6F
|
||||
VK_F1=0x70
|
||||
VK_F2=0x71
|
||||
VK_F3=0x72
|
||||
VK_F4=0x73
|
||||
VK_F5=0x74
|
||||
VK_F6=0x75
|
||||
VK_F7=0x76
|
||||
VK_F8=0x77
|
||||
VK_F9=0x78
|
||||
VK_F10=0x79
|
||||
VK_F11=0x7A
|
||||
VK_F12=0x7B
|
||||
VK_F13=0x7C
|
||||
VK_F14=0x7D
|
||||
VK_F15=0x7E
|
||||
VK_F16=0x7F
|
||||
VK_F17=0x80
|
||||
VK_F18=0x81
|
||||
VK_F19=0x82
|
||||
VK_F20=0x83
|
||||
VK_F21=0x84
|
||||
VK_F22=0x85
|
||||
VK_F23=0x86
|
||||
VK_F24=0x87
|
||||
VK_NUMLOCK=0x90
|
||||
VK_SCROLL=0x91
|
||||
VK_LSHIFT=0xA0
|
||||
VK_RSHIFT=0xA1
|
||||
VK_LCONTROL=0xA2
|
||||
VK_RCONTROL=0xA3
|
||||
VK_LMENU=0xA4
|
||||
VK_RMENU=0xA5
|
||||
VK_BROWSER_BACK=0xA6
|
||||
VK_BROWSER_FORWARD=0xA7
|
||||
VK_BROWSER_REFRESH=0xA8
|
||||
VK_BROWSER_STOP=0xA9
|
||||
VK_BROWSER_SEARCH=0xAA
|
||||
VK_BROWSER_FAVORITES=0xAB
|
||||
VK_BROWSER_HOME=0xAC
|
||||
VK_VOLUME_MUTE=0xAD
|
||||
VK_VOLUME_DOWN=0xAE
|
||||
VK_VOLUME_UP=0xAF
|
||||
VK_MEDIA_NEXT_TRACK=0xB0
|
||||
VK_MEDIA_PREV_TRACK=0xB1
|
||||
VK_MEDIA_STOP=0xB2
|
||||
VK_MEDIA_PLAY_PAUSE=0xB3
|
||||
VK_LAUNCH_MAIL=0xB4
|
||||
VK_LAUNCH_MEDIA_SELECT=0xB5
|
||||
VK_LAUNCH_APP1=0xB6
|
||||
VK_LAUNCH_APP2=0xB7
|
||||
VK_OEM_1=0xBA
|
||||
VK_OEM_PLUS=0xBB
|
||||
VK_OEM_COMMA=0xBC
|
||||
VK_OEM_MINUS=0xBD
|
||||
VK_OEM_PERIOD=0xBE
|
||||
VK_OEM_2=0xBF
|
||||
VK_OEM_3=0xC0
|
||||
VK_OEM_4=0xDB
|
||||
VK_OEM_5=0xDC
|
||||
VK_OEM_6=0xDD
|
||||
VK_OEM_7=0xDE
|
||||
VK_OEM_8=0xDF
|
||||
VK_OEM_102=0xE2
|
||||
VK_PROCESSKEY=0xE5
|
||||
VK_PACKET=0xE7
|
||||
VK_ATTN=0xF6
|
||||
VK_CRSEL=0xF7
|
||||
VK_EXSEL=0xF8
|
||||
VK_EREOF=0xF9
|
||||
VK_PLAY=0xFA
|
||||
VK_ZOOM=0xFB
|
||||
VK_NONAME=0xFC
|
||||
VK_PA1=0xFD
|
||||
VK_OEM_CLEAR=0xFE
|
||||
|
||||
CF_TEXT=1
|
||||
CF_BITMAP=2
|
||||
CF_METAFILEPICT=3
|
||||
CF_SYLK=4
|
||||
CF_DIF=5
|
||||
CF_TIFF=6
|
||||
CF_OEMTEXT=7
|
||||
CF_DIB=8
|
||||
CF_PALETTE=9
|
||||
CF_PENDATA=10
|
||||
CF_RIFF=11
|
||||
CF_WAVE=12
|
||||
CF_UNICODETEXT=13
|
||||
CF_ENHMETAFILE=14
|
||||
CF_HDROP=15
|
||||
CF_LOCALE=16
|
||||
CF_MAX=17
|
||||
CF_OWNERDISPLAY=128
|
||||
CF_DSPTEXT=129
|
||||
CF_DSPBITMAP=130
|
||||
CF_DSPMETAFILEPICT=131
|
||||
CF_DSPENHMETAFILE=142
|
||||
CF_PRIVATEFIRST=512
|
||||
CF_PRIVATELAST=767
|
||||
CF_GDIOBJFIRST=768
|
||||
CF_GDIOBJLAST=1023
|
||||
|
||||
|
||||
GPTR=64
|
||||
GHND=66
|
Loading…
Add table
Add a link
Reference in a new issue