[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统增强] 按键获取工具 neoGetKey

本帖最后由 aa77dd@163.com 于 2016-10-7 17:05 编辑

获取当前被按下的 按键虚拟键值 组合, 支持全键盘按键, 以及鼠标 左 右 中键

工具用 C 语言编写, 可以用 BASE64 编码包含进 批处理 文件

已测试通过环境: 中文 WIN7 64位


最多可获取同时按下的 4 个按键, 最小的按键虚拟键值放在最低字节, 更大的按键虚拟键值依次放在更高的字节
如果设置了超时参数, 或者以默认超时运行时, 程序将等待直到有任何按键按下 或者 运行时间达到 超时时间 为止
如果在超时前有按键按下, 将返回相应的按键组合值; 否则, 因超时而结束运行, 将返回 255.

例1:

同时按下 A S D F 四个键, 返回值:

    0x53464441 = 1397113921 = (83 << 24) + (70 << 16) + (68 << 8) + 65

四个键 的 虚拟键值分别是: A: 65  S: 83  D: 68   F:70

测试程序显示:    pressed key value is : 83 + 70 + 68 + 65

例2:

同时按下 右Ctrl 和 N 两个键, 返回值:

    0xA34E = 41806 = (163 << 8) + 78

两个键 的 虚拟键值分别是: 右Ctrl: 163  N: 78

测试程序显示:    pressed key value is : 0 + 0 + 163 + 78

例3:

按下 右方向键, 返回值:

    0x27 = 39

右方向键的虚拟键值是 39

测试程序显示:    pressed key value is : 0 + 0 + 0 + 39


测试用批处理程序
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM certutil 在 Windows XP 环境不是原生程序, 需要其他 BASE64 解码器
  4. certutil -f -decode "%~0" neoGetKey.exe.cab
  5. expand neoGetKey.exe.cab neoGetKey.exe
  6. for /L %%a in () do (
  7.     echo;neoGetKey:
  8.     neoGetKey.exe 1 X           &  rem 超时 1ms, 以十六进制显示返回值
  9.     REM 其他示例用法
  10.     REM neoGetKey.exe 37        &  rem 超时 37ms, 不显示返回值
  11.     REM neoGetKey.exe 500 D     &  rem 超时 500ms, 以十进制显示返回值
  12.     REM neoGetKey.exe 0         &  rem 无限等待直到按键按下, 不显示返回值
  13.     REM neoGetKey.exe           &  rem 无参数运行, 默认超时 1000ms, 并且不显示返回值
  14.     REM neoGetKey.exe X         &  rem 未设定超时参数, 第一个参数会被视为超时参数, 但参数不是数字, 将按默认超时 1000ms 处理, 并且不显示返回值
  15.     set "err=!errorlevel!"
  16.     if !err! equ 255 (echo;   time out) else (
  17.         set /a "k1=err & 0xFF, k2=err>>8 & 0xFF, k3=err>>16 & 0xFF, k4=err>>24 & 0xFF"
  18.         echo;   pressed key value is : !k4! + !k3! + !k2! + !k1!
  19.     )
  20.     echo;pause 3s
  21.     ping -n 2 localhost >nul
  22. )
  23. exit
  24. C 源码
  25. neoGetKey.exe
  26. aa77dd@163.com @ 20161007_161916
  27. 获取当前被按下的 按键 值, 支持全键盘按键, 以及鼠标 左 右 中键
  28. 参数说明:
  29.     neoGetKey.exe [timeout [showMethod]]
  30.     timeout         超时数, 单位 ms, 在运行超过此时间后自动退出, 并返回 255
  31.                     如果 此项是 0  将一直等到检测到有键按下, 程序才会结束并返回键值.
  32.                     如果 此项不存在, 最长将等到默认值 1000ms 后退出
  33.     showMethod      返回值的显示方式, 此项为 D 以十进制显示, 此项为 X 以十六进制显示
  34.                     如果此项不存在, 将不会显示返回值
  35.                     此项 要么不指定, 否则必须和 timeout 同时指定
  36. ::BEGIN:neoGetKey.C
  37. #include <Windows.h>
  38. #include <stdio.h>
  39. int main(int argc, char** argv) {
  40.     int i, t = 1000, r = 0, kshift = -8;
  41.     char show[3] = "%\0\0";
  42.     if (argc >= 2) t = atoi(argv[1]);
  43.     if (argc >= 3)
  44.         show[1] = (**(argv + 2) >= 'a') ? **(argv + 2) : **(argv + 2) + 'a' - 'A';
  45.     show[1] = ( show[1] == 'x' || show[1] == 'd') ? show[1] : '\0';
  46.     for (i = 0; t == 0 || i < t; i++) {
  47.         int x;
  48.         for (x = 1; x <= 0xFE; x++) {
  49.             if (x == VK_SHIFT || x == VK_CONTROL || x == VK_MENU)
  50.                 continue;
  51.             if (GetAsyncKeyState(x) & 0x8000) {
  52.                 r |= x << (kshift += 8);
  53.                 if (kshift >= 24) {
  54.                     if (show[1]) printf(show, r);
  55.                     return r;
  56.                 }
  57.             }
  58.         }
  59.         if (r != 0) {
  60.             if (show[1]) printf(show, r);
  61.             return r;
  62.         }
  63.         sleep(1);
  64.     }
  65.     if (show[1]) printf(show, 0xFF);
  66.     return 0xFF;
  67. }
  68. ::END:neoGetKey.C
  69. ::neoGetKey.exe.cab.b64
  70. -----BEGIN CERTIFICATE-----
  71. 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
  72. -----END CERTIFICATE-----
复制代码
虚拟键值表, 转自微软官方文档 Virtual-Key Codes
https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx

Constant/valueDescription
VK_LBUTTON
0x01
Left mouse button
VK_RBUTTON
0x02
Right mouse button
VK_CANCEL
0x03
Control-break processing
VK_MBUTTON
0x04
Middle mouse button (three-button mouse)
VK_XBUTTON1
0x05
X1 mouse button
VK_XBUTTON2
0x06
X2 mouse button
-
0x07
Undefined
VK_BACK
0x08
BACKSPACE key
VK_TAB
0x09
TAB key
-
0x0A-0B
Reserved
VK_CLEAR
0x0C
CLEAR key
VK_RETURN
0x0D
ENTER key
-
0x0E-0F
Undefined
VK_SHIFT
0x10
SHIFT key
VK_CONTROL
0x11
CTRL key
VK_MENU
0x12
ALT key
VK_PAUSE
0x13
PAUSE key
VK_CAPITAL
0x14
CAPS LOCK key
VK_KANA
0x15
IME Kana mode
VK_HANGUEL
0x15
IME Hanguel mode (maintained for compatibility; use VK_HANGUL)
VK_HANGUL
0x15
IME Hangul mode
-
0x16
Undefined
VK_JUNJA
0x17
IME Junja mode
VK_FINAL
0x18
IME final mode
VK_HANJA
0x19
IME Hanja mode
VK_KANJI
0x19
IME Kanji mode
-
0x1A
Undefined
VK_ESCAPE
0x1B
ESC key
VK_CONVERT
0x1C
IME convert
VK_NONCONVERT
0x1D
IME nonconvert
VK_ACCEPT
0x1E
IME accept
VK_MODECHANGE
0x1F
IME mode change request
VK_SPACE
0x20
SPACEBAR
VK_PRIOR
0x21
PAGE UP key
VK_NEXT
0x22
PAGE DOWN key
VK_END
0x23
END key
VK_HOME
0x24
HOME key
VK_LEFT
0x25
LEFT ARROW key
VK_UP
0x26
UP ARROW key
VK_RIGHT
0x27
RIGHT ARROW key
VK_DOWN
0x28
DOWN ARROW key
VK_SELECT
0x29
SELECT key
VK_PRINT
0x2A
PRINT key
VK_EXECUTE
0x2B
EXECUTE key
VK_SNAPSHOT
0x2C
PRINT SCREEN key
VK_INSERT
0x2D
INS key
VK_DELETE
0x2E
DEL key
VK_HELP
0x2F
HELP key
0x300 key
0x311 key
0x322 key
0x333 key
0x344 key
0x355 key
0x366 key
0x377 key
0x388 key
0x399 key
-
0x3A-40
Undefined
0x41A key
0x42B key
0x43C key
0x44D key
0x45E key
0x46F key
0x47G key
0x48H key
0x49I key
0x4AJ key
0x4BK key
0x4CL key
0x4DM key
0x4EN key
0x4FO key
0x50P key
0x51Q key
0x52R key
0x53S key
0x54T key
0x55U key
0x56V key
0x57W key
0x58X key
0x59Y key
0x5AZ key
VK_LWIN
0x5B
Left Windows key (Natural keyboard)
VK_RWIN
0x5C
Right Windows key (Natural keyboard)
VK_APPS
0x5D
Applications key (Natural keyboard)
-
0x5E
Reserved
VK_SLEEP
0x5F
Computer Sleep key
VK_NUMPAD0
0x60
Numeric keypad 0 key
VK_NUMPAD1
0x61
Numeric keypad 1 key
VK_NUMPAD2
0x62
Numeric keypad 2 key
VK_NUMPAD3
0x63
Numeric keypad 3 key
VK_NUMPAD4
0x64
Numeric keypad 4 key
VK_NUMPAD5
0x65
Numeric keypad 5 key
VK_NUMPAD6
0x66
Numeric keypad 6 key
VK_NUMPAD7
0x67
Numeric keypad 7 key
VK_NUMPAD8
0x68
Numeric keypad 8 key
VK_NUMPAD9
0x69
Numeric keypad 9 key
VK_MULTIPLY
0x6A
Multiply key
VK_ADD
0x6B
Add key
VK_SEPARATOR
0x6C
Separator key
VK_SUBTRACT
0x6D
Subtract key
VK_DECIMAL
0x6E
Decimal key
VK_DIVIDE
0x6F
Divide key
VK_F1
0x70
F1 key
VK_F2
0x71
F2 key
VK_F3
0x72
F3 key
VK_F4
0x73
F4 key
VK_F5
0x74
F5 key
VK_F6
0x75
F6 key
VK_F7
0x76
F7 key
VK_F8
0x77
F8 key
VK_F9
0x78
F9 key
VK_F10
0x79
F10 key
VK_F11
0x7A
F11 key
VK_F12
0x7B
F12 key
VK_F13
0x7C
F13 key
VK_F14
0x7D
F14 key
VK_F15
0x7E
F15 key
VK_F16
0x7F
F16 key
VK_F17
0x80
F17 key
VK_F18
0x81
F18 key
VK_F19
0x82
F19 key
VK_F20
0x83
F20 key
VK_F21
0x84
F21 key
VK_F22
0x85
F22 key
VK_F23
0x86
F23 key
VK_F24
0x87
F24 key
-
0x88-8F
Unassigned
VK_NUMLOCK
0x90
NUM LOCK key
VK_SCROLL
0x91
SCROLL LOCK key
0x92-96OEM specific
-
0x97-9F
Unassigned
VK_LSHIFT
0xA0
Left SHIFT key
VK_RSHIFT
0xA1
Right SHIFT key
VK_LCONTROL
0xA2
Left CONTROL key
VK_RCONTROL
0xA3
Right CONTROL key
VK_LMENU
0xA4
Left MENU key
VK_RMENU
0xA5
Right MENU key
VK_BROWSER_BACK
0xA6
Browser Back key
VK_BROWSER_FORWARD
0xA7
Browser Forward key
VK_BROWSER_REFRESH
0xA8
Browser Refresh key
VK_BROWSER_STOP
0xA9
Browser Stop key
VK_BROWSER_SEARCH
0xAA
Browser Search key
VK_BROWSER_FAVORITES
0xAB
Browser Favorites key
VK_BROWSER_HOME
0xAC
Browser Start and Home key
VK_VOLUME_MUTE
0xAD
Volume Mute key
VK_VOLUME_DOWN
0xAE
Volume Down key
VK_VOLUME_UP
0xAF
Volume Up key
VK_MEDIA_NEXT_TRACK
0xB0
Next Track key
VK_MEDIA_PREV_TRACK
0xB1
Previous Track key
VK_MEDIA_STOP
0xB2
Stop Media key
VK_MEDIA_PLAY_PAUSE
0xB3
Play/Pause Media key
VK_LAUNCH_MAIL
0xB4
Start Mail key
VK_LAUNCH_MEDIA_SELECT
0xB5
Select Media key
VK_LAUNCH_APP1
0xB6
Start Application 1 key
VK_LAUNCH_APP2
0xB7
Start Application 2 key
-
0xB8-B9
Reserved
VK_OEM_1
0xBA
Used for miscellaneous characters; it can vary by keyboard.
For the US standard keyboard, the ';:' key
VK_OEM_PLUS
0xBB
For any country/region, the '+' key
VK_OEM_COMMA
0xBC
For any country/region, the ',' key
VK_OEM_MINUS
0xBD
For any country/region, the '-' key
VK_OEM_PERIOD
0xBE
For any country/region, the '.' key
VK_OEM_2
0xBF
Used for miscellaneous characters; it can vary by keyboard.
For the US standard keyboard, the '/?' key
VK_OEM_3
0xC0
Used for miscellaneous characters; it can vary by keyboard.
For the US standard keyboard, the '`~' key
-
0xC1-D7
Reserved
-
0xD8-DA
Unassigned
VK_OEM_4
0xDB
Used for miscellaneous characters; it can vary by keyboard.
For the US standard keyboard, the '[{' key
VK_OEM_5
0xDC
Used for miscellaneous characters; it can vary by keyboard.
For the US standard keyboard, the '\|' key
VK_OEM_6
0xDD
Used for miscellaneous characters; it can vary by keyboard.
For the US standard keyboard, the ']}' key
VK_OEM_7
0xDE
Used for miscellaneous characters; it can vary by keyboard.
For the US standard keyboard, the 'single-quote/double-quote' key
VK_OEM_8
0xDF
Used for miscellaneous characters; it can vary by keyboard.
-
0xE0
Reserved
0xE1OEM specific
VK_OEM_102
0xE2
Either the angle bracket key or the backslash key on the RT 102-key keyboard
0xE3-E4OEM specific
VK_PROCESSKEY
0xE5
IME PROCESS key
0xE6OEM specific
VK_PACKET
0xE7
Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in
-
0xE8
Unassigned
0xE9-F5OEM specific
VK_ATTN
0xF6
Attn key
VK_CRSEL
0xF7
CrSel key
VK_EXSEL
0xF8
ExSel key
VK_EREOF
0xF9
Erase EOF key
VK_PLAY
0xFA
Play key
VK_ZOOM
0xFB
Zoom key
VK_NONAME
0xFC
Reserved
VK_PA1
0xFD
PA1 key
VK_OEM_CLEAR
0xFE
Clear key
2

评分人数

timeout 没有起作用,win7 x64

TOP

本帖最后由 aa77dd@163.com 于 2016-9-7 14:56 编辑

回复 2# CrLf

第一个参数会被看成是 timeout   即使是 x  或者 d  这样解析成数字就会失败, 从而在程序内部 t=0, 而造成无限等待, 直到有任意按键被按下

neoGetKey.exe d

neoGetKey.exe 0
等效, 将无限等待有键被按下, 并且不会显示返回值

要让 timeout 是 1 秒, 要么一个参数也没有, 要么 必须明确指定 1000

无任何参数
neoGetKey.exe

或者明确指定:
neoGetKey.exe 1000 d
或者
neoGetKey.exe 1000 x

我的运行结果示例,
注意 timeout 单位是 ms, 不是秒,  500 就是半秒

2   pressed key value is : 2             <-     点鼠标右键的信息

1   pressed key value is : 1             <-     点鼠标左键的信息
  1. 输入长度 = 8504
  2. 输出长度 = 6144
  3. CertUtil: -decode 命令成功完成。
  4. ff   time out
  5. ff   time out
  6. ff   time out
  7. ff   time out
  8. 2   pressed key value is : 2
  9. 2   pressed key value is : 2
  10. 2   pressed key value is : 2
  11. 2   pressed key value is : 2
  12. 2   pressed key value is : 2
  13. 2   pressed key value is : 2
  14. ff   time out
  15. ff   time out
  16. 1   pressed key value is : 1
  17. 1   pressed key value is : 1
  18. 1   pressed key value is : 1
  19. 1   pressed key value is : 1
  20. ff   time out
  21. ff   time out
  22. ff   time out
复制代码

TOP

:BEGIN:getKEY.B64
这个标签应该也是没有必要加的。

certutil 会忽略其它内容。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 4# codegay


试了一下, 直接把批处理文件给它去 decode, 还真是忽略了, 那么只要 不包含 多个 文件在里面, 就真没必要 生成新文件 再来 decode 了

TOP

回复 5# aa77dd@163.com


   我这篇是前几天写的: http://bbs.bathome.net/thread-41604-1-1.html
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

-----BEGIN CERTIFICATE----- 里面好多连续的A 我猜可以再压缩一下。

TOP

回复 7# 523066680


    可是加壳工具容易报毒。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 8# codegay


    就简单的字符处理一下  A{数量},用到的时候提取,扩展。

TOP

回复 6# codegay


    难道没人好奇 certutil -downloadOcsp 怎么用吗?说不定又是黑科技

TOP

GetAsyncKeyState(x)比kbhit()强多了,只是觉得好像有点延迟,按键反应不是很快,360会拦住

TOP

回复 10# CrLf


    我这没这参数。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 9# 523066680


    先 upx,再 encode,就不会有这么多重复字符了,杀毒引擎会认 upx 的吧

TOP

回复 13# CrLf


    按照几年前的印象。凡是加壳的程序都容易报提示。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 7# 523066680


    我猜是大量连续nul字符的base64编码;

你这话,让我又想起了文本可见范围的字符压缩,老帖子出题区。

TOP

返回列表