【原创】用lsp模拟按键
本帖最后由 baitang36 于 2023-11-8 08:25 编辑用lsp程序实现的模拟按键。
程序定义了三个函数:syz_keydown(vk)syz_keyup(vk)syz_press (k)
syz_keydown是模拟按下按键
syz_keyup是模拟松开按键
syz_press 是模拟按下立即松开按键
参数vk是按键的ASCII码,是个数字。A就是65,是VK_A
例如,模拟alt_f4,代码是:
(syz_keydown VK_LMENU)
(syz_press vk_f4)
(syz_keyup VK_LMENU)
为了和c++语言的习惯统一,程序中定义了VK_开头的变量,可以直接用变量名,当然也可以用ascii数字。
按键定义如下:
(setq VK_LBUTTON 1 );鼠标左键
(setq VK_RBUTTON 2 );鼠标右键
(setq VK_CANCEL 3 );Ctrl-Break键
(setq VK_MBUTTON 4 );鼠标中键
(setq VK_BACK 8 );Backspace键
(setq VK_TAB 9 );Tab键
(setq VK_CLEAR 12 );Clear键
(setq VK_RETURN 13 );Enter键
(setq VK_SHIFT 16 );Shift键
(setq VK_CONTROL 17 );Ctrl键
(setq VK_MENU 18 );Alt键
(setq VK_PAUSE 19 ); Pause键
(setq VK_CAPITAL 20 );Caps Lock键
(setq VK_ESCAPE 27);Esc键
(setq VK_SPACE 32 );Space键
(setq VK_PRIOR 33 ); page Up键
(setq VK_NEXT 34 ); Page Down键
(setq VK_END 35 );End键
(setq VK_HOME 36 );Home键
(setq VK_LEFT 37 );←键
(setq VK_UP 38 );↑键
(setq VK_RIGHT 39 );→键
(setq VK_DOWN 40 );↓键
(setq VK_SELECT 41 );Select键
(setq VK_PRINT 42 ); Print键
(setq VK_EXECUTE 43 );Execute键
(setq VK_SNAPSHOT 44 );44 Print Screen键
(setq VK_INSERT 45 );Ins键
(setq VK_DELETE 46 );Del键
(setq VK_HELP 47 );Help键
(setq VK_0 48 );0键
(setq VK_1 49 );1键
(setq VK_2 50 );2键
(setq VK_3 51 );3键
(setq VK_4 52 );4键
(setq VK_5 53 );5键
(setq VK_6 54 );6键
(setq VK_7 55 );7键
(setq VK_8 56 );8键
(setq VK_9 57 );9键
(setq VK_A 65 );A键
(setq VK_B 66 );B键
(setq VK_C 67 );C键
(setq VK_D 68 );D键
(setq VK_E 69 );E键
(setq VK_F 70 );F键
(setq VK_G 71 );G键
(setq VK_H 72 );H键
(setq VK_I 73 );I键
(setq VK_J 74 );J键
(setq VK_K 75 );K键
(setq VK_L 76 );L键
(setq VK_M 77 );M键
(setq VK_N 78 );N键
(setq VK_O 79 );O键
(setq VK_P 80 ); P键
(setq VK_Q 81 );Q键
(setq VK_R 82 );R键
(setq VK_S 83 );S键
(setq VK_T 84 );T键
(setq VK_U 85 );U键
(setq VK_V 86 );V键
(setq VK_W 87 );W键
(setq VK_X 88 );X键
(setq VK_Y 89 );Y键
(setq VK_Z 90 );Z键
(setq VK_LWIN 91 );左Windows键
(setq VK_RWIN 92 );右Windows键
(setq VK_APPS 93 );应用程序键
(setq VK_SLEEP 95 );休眠键
(setq VK_NUMPAD0 96 );小数字键盘0键
(setq VK_NUMPAD1 97 );小数字键盘1键
(setq VK_NUMPAD2 98 );小数字键盘2键
(setq VK_NUMPAD3 99 );小数字键盘3键
(setq VK_NUMPAD4 100 );小数字键盘4键
(setq VK_NUMPAD5 101 );小数字键盘5键
(setq VK_NUMPAD6 102 );小数字键盘6键
(setq VK_NUMPAD7 103 );小数字键盘7键
(setq VK_NUMPAD8 104 );小数字键盘8键
(setq VK_NUMPAD9 105 );小数字键盘9键
(setq VK_MULTIPLY 106 );乘号键
(setq VK_ADD 107 );加号键
(setq VK_SEPARATOR 108 );分割键
(setq VK_SUBSTRACT 109 );减号键
(setq VK_DECIMAL 110 );小数点键
(setq VK_DIVIDE 111 );除号键
(setq VK_F1 112 );F1键
(setq VK_F2 113 );F2键
(setq VK_F3 114 );F3键
(setq VK_F4 115 );F4键
(setq VK_F5 116 );F5键
(setq VK_F6 117 );F6键
(setq VK_F7 118 );F7键
(setq VK_F8 119 );F8键
(setq VK_F9 120 );F9键
(setq VK_F10 121 );F10键
(setq VK_F11 122 );F11键
(setq VK_F12 123 );F12键
(setq VK_NUMLOCK 144 );Num Lock键
(setq VK_SCROLL 145 );Scroll Lock键
(setq VK_LSHIFT 160 );左Shift键
(setq VK_RSHIFT 161 );右Shift键
(setq VK_LCONTROL 162);左Ctrl键
(setq VK_RCONTROL 163);右Ctrl键
(setq VK_LMENU 164 );左Alt键
(setq VK_RMENU 165 );右Alt键
用程序实现对键盘的控制,用lsp调用快捷键。
至于用途吗,看你的想象力了。比如控制输入法。
甚至还可以用它来做个游戏外挂。
没币的朋友可以在这里下载 666666666,必须下载一个 aws 发表于 2023-3-20 14:57
我也是想到做成输入法,控制开启大写就行了,但是,不知道如何去自动运行,怎么识别,大写是否开启的状态
看这里 http://bbs.mjtd.com/thread-188759-1-1.html 我也是想到做成输入法,控制开启大写就行了,但是,不知道如何去自动运行,怎么识别,大写是否开启的状态 必须收藏,这么完整和整齐列举了所需的按键,厉害。 游戏挂机时:
时间停顿,或者延迟20秒再执行下个函数,lsp 应该怎样写? yaojing38 发表于 2023-2-3 13:48
请问是加载插件,直接调用 (syz_press VK_INSERT) 就可以??新手,,呵呵!
是的,就是这样 无限扩展可能,想到了按键精灵,感谢大佬分享 boboxiake 发表于 2023-2-3 18:45
外挂的话,只能开着CAD玩游戏吗
看起来像是在画图,其实是在挖矿 感觉这个东西是不是可以和grread配合?
我有一个悬浮图标,鼠标点击它,想到得到执行效果的是单击空格!
这样在我运行lisp程序的过程中,用鼠标点击 悬浮图标 等于 单击空格,然后用grread来获取空壳的按键值,lisp命令会继续执行,而不被打断! :victory::victory::victory::victory::victory: 牛人,支持你! 大佬太牛了 666666666,必须下载一个 大佬太牛了 老大这两个键 ctr键和空格键 组合按下如何用呢 谢谢!
(setq VK_SPACE 32 );Space键
(setq VK_LCONTROL 162);左Ctrl键 (syz_keydown VK_LMENU)
(syz_press vk_LCONTROL_SPACE)
(syz_keyup VK_LMENU) guosheyang 发表于 2023-2-2 11:38
(syz_keydown VK_LMENU)
(syz_press vk_LCONTROL_SPACE)
(syz_keyup VK_LMENU)
这个不对头啊 这个也太牛了吧,我瞬间都能想到好多可能的用法了