明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4753|回复: 50

[经验] 【原创】用lsp模拟按键

    [复制链接]
发表于 2023-2-2 09:22 | 显示全部楼层 |阅读模式
本帖最后由 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调用快捷键。
至于用途吗,看你的想象力了。比如控制输入法。
甚至还可以用它来做个游戏外挂。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 10明经币 +11 收起 理由
sandyvs + 1 很给力!需要输入关键字,又需要汉字输入的.
自贡黄明儒 + 1 有点牛
伪书虫86 + 1 很给力!
仲文玉 + 2 赞一个!
p-3-ianlcc + 1
magicheno + 1 很给力!
guosheyang + 1 很给力!
zm880928 + 1 很给力!
Bao_lai + 1 很给力!
cghdy + 1

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2023-2-2 14:02 | 显示全部楼层
没币的朋友可以在这里下载

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 2 反对 1

使用道具 举报

发表于 2023-10-23 15:30 | 显示全部楼层
666666666,必须下载一个
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-10-20 10:11 | 显示全部楼层
aws 发表于 2023-3-20 14:57
我也是想到做成输入法,控制开启大写就行了,但是,不知道如何去自动运行,怎么识别,大写是否开启的状态

看这里 http://bbs.mjtd.com/thread-188759-1-1.html
回复 支持 1 反对 0

使用道具 举报

发表于 2023-3-20 14:57 | 显示全部楼层
我也是想到做成输入法,控制开启大写就行了,但是,不知道如何去自动运行,怎么识别,大写是否开启的状态
回复 支持 1 反对 0

使用道具 举报

发表于 2023-2-11 14:38 | 显示全部楼层
必须收藏,这么完整和整齐列举了所需的按键,厉害。
回复 支持 1 反对 0

使用道具 举报

发表于 2023-2-11 08:29 | 显示全部楼层
游戏挂机时:
时间停顿,或者延迟20秒再执行下个函数,lsp 应该怎样写?
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-2-3 14:56 | 显示全部楼层
yaojing38 发表于 2023-2-3 13:48
请问是加载插件,直接调用 (syz_press VK_INSERT) 就可以??新手,,呵呵!

是的,就是这样
回复 支持 1 反对 0

使用道具 举报

发表于 2023-2-3 15:26 | 显示全部楼层
无限扩展可能,想到了按键精灵,感谢大佬分享
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-2-3 22:20 | 显示全部楼层
boboxiake 发表于 2023-2-3 18:45
外挂的话,只能开着CAD玩游戏吗

看起来像是在画图,其实是在挖矿
回复 支持 1 反对 0

使用道具 举报

发表于 2023-2-10 01:41 | 显示全部楼层
感觉这个东西是不是可以和grread配合?
我有一个悬浮图标,鼠标点击它,想到得到执行效果的是单击空格!
这样在我运行lisp程序的过程中,用鼠标点击 悬浮图标 等于 单击空格,然后用grread来获取空壳的按键值,lisp命令会继续执行,而不被打断!

点评

你试试吧  发表于 2023-2-10 10:32
回复 支持 1 反对 0

使用道具 举报

发表于 2023-2-2 10:13 来自手机 | 显示全部楼层
牛人,支持你!

评分

参与人数 1明经币 +1 收起 理由
baitang36 + 1 神马都是浮云

查看全部评分

发表于 2023-2-2 10:34 | 显示全部楼层
大佬太牛了

评分

参与人数 1金钱 +50 收起 理由
baitang36 + 50 神马都是浮云

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2023-2-2 11:16 | 显示全部楼层
666666666,必须下载一个
回复 支持 1 反对 0

使用道具 举报

发表于 2023-2-2 11:29 | 显示全部楼层
大佬太牛了
发表于 2023-2-2 11:34 | 显示全部楼层
老大  这两个键 ctr键和空格键 组合按下  如何用呢 谢谢!
(setq VK_SPACE 32 );Space键
(setq VK_LCONTROL 162);左Ctrl键  
回复 支持 1 反对 0

使用道具 举报

发表于 2023-2-2 11:38 | 显示全部楼层
(syz_keydown VK_LMENU)
(syz_press vk_LCONTROL_SPACE)
(syz_keyup VK_LMENU)
回复 支持 1 反对 0

使用道具 举报

发表于 2023-2-2 11:51 | 显示全部楼层
guosheyang 发表于 2023-2-2 11:38
(syz_keydown VK_LMENU)
(syz_press vk_LCONTROL_SPACE)
(syz_keyup VK_LMENU)

这个不对头啊
发表于 2023-2-2 12:20 | 显示全部楼层
这个也太牛了吧,我瞬间都能想到好多可能的用法了
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-4-25 06:35 , Processed in 0.301398 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表