软件效果-使用peek进行录制
sudo usermod -a -G input username
make kbdcros.out
- 请先在个人目录下创建macros文件夹
mkdir ~/macros
,或者把本文件中的macro拷贝到个人目录中,里面有一个实例文件可以使用 ./kbdcros.out -mr -n macroname
此命令会创建一个以macroname为文件名的存储键盘宏的文件存放在macros中,m代表模式,r代表record,s代表simulate,n代表name,退出录制请按ESC./kbdcros.out -ms -n macroname
此命令会实时模拟录制的键盘宏,模拟时因为需要单独创建一个虚拟设备,所以需要消耗一些时间,如果有需要可以修改源代码,直接把虚拟文件映射到实体键盘设备文件上,并取消sleep时间,会提高启动速度,两者除一些细微区别以外,使用效果是相同的./kbdcros.out -l
列出已经录制好的键盘宏
- 需要在用户的目录下创建macros文件夹
- 录制文件中的ENTER Release 是正常现象,就常理而言发送一个键的释放事件不会对程序产生任何影响。如有需要可以使用
sleep && ./kbdcros.out -mr -n helloworld
命令进行录制 - 因为此处使用一个线程来专门录制键盘宏,其生命周期随着主线程的死亡而死亡,主进程的生命周期使用sleep进行控制,设置了20s的时长,睡眠结束,程序终止,会创建响应的键盘宏文件,但不会写入任何内容
- 因为loadkeymap()函数需要的keymap文件是放在本文件夹中的,所以将可执行文件移动到其他地方是运行不了的,或者说会运行出错
- 此外,命名后缀为cpp是因为本人缺乏GUI编程,从Web编程的角度来思考各种问题。无法确定QT程序的结构,又因QT以cpp为后缀,为了稳妥起见或者说以后构建QT程序的方便起见,此处采用cpp后缀命名,但使用的是c的语法和功能,使用的各种库也是c的库。
- 本人在编写c程序过程中使用的是valgrind程序来进行内存方面的检查,如果需要测试,测试过程中可能会出现内存泄露问题,经过排查,应该是没有对RawLink结构进行合适的free,会出现一次或多次内存泄露问题,属于正常现象,也已经找到源头,不包含语义错误。
- 但是对于 “-l" 命令参数,由于编程能力,对于使用的函数不是很熟悉。既会出现内存泄露,又会出现语义错误,不得其解,但不影响使用
- 可以在develop.org文件中查看更多信息,里面有我走的一些坑和一些思路,以及出现了哪些错误
- 本文档和本程序有改进的可能,但应该承认优化是没有尽头的,到此为止吧,peace
个人邮箱:[email protected]