【原创】用lsp检查按键状态
本帖最后由 baitang36 于 2023-11-8 08:27 编辑定义了一个函数 syz_getkeystate,用法如下:
(syz_getkeystate 144) 返回numlock键的状态,按下灯亮时为1,否则为0.
(syz_getkeystate 145) 返回scrollLock键的状态,按下灯亮时为1,否则为0.
(syz_getkeystate 20) 返回CapsLock键的状态,按下灯亮时为1,否则为0.
本程序是【原创】用lsp模拟按键 - AutoLISP/Visual LISP 编程技术 - AutoCAD论坛 - 明经CAD社区 - Powered by Discuz! (mjtd.com)的升级版,功能包括了以前内容。
这函数是通过调用windows系统的api实现的,当然也可以检测其它键的状态,关于返回值的说明,准确的说法搜到的是英文的,请自己翻译:
The return value specifies the status of the specified virtual key, as follows:
[*]If the high-order bit is 1, the key is down; otherwise, it is up.
[*]If the low-order bit is 1, the key is toggled. A key, such as the CAPS LOCK key, is toggled if it is turned on. The key is off and untoggled if the low-order bit is 0. A toggle key's indicator light (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled.
高人,太牛了,感谢分享 caoliu023 发表于 2023-10-19 17:35
是不是用了内部函数
是的,用lsp调用windows的dll 各位老师好,如何实现,按一下SHIFT键,就直接切换到中文状态啊,下面这段,我还没按键就直接切换过去了,我要的是手动按SHIFT键,再切换成中文
(defun shiftRUN ()
(if (syz_press VK_SHIFT) (syz-setKeyboardLayout-chn))
)
(shiftRUN)
感谢大佬分享 谢谢哥分享!
支持+1 方向键也能检测到? 本帖最后由 baitang36 于 2023-10-20 08:29 编辑
kozmosovia 发表于 2023-10-19 15:22
方向键也能检测到?
试了一下,可以的 感谢大佬分享 是不是用了内部函数 盛老师出手,必属精品
页:
[1]
2