在这以前,我一直以为,除非搞X Window级别的开发,否则根本没法在Linux下模拟键盘消息,或者说键盘事件。像QT,GTK这些High Level的GUI library貌似根本没有提供这些功能。这么看起来,想要实现与Windows下SendMessage(hwnd, KEY_PRESS,0 ,128 )这样类似的功能还真不容易。这大概是Linux下接口不统一的弊端吧。不过还好,我们有XTest(the X test extension)这个Xlib的扩展库,用它可以实现我们想要的模拟键盘按键的功能。 用法还是比较简单的,例子我先不给出,因为我发现了更加便捷的方法:那就是python的第三方扩展库virtkey virtkey(): python extension for emulating keypresses and getting current keyboard layout 看看,多么xx的解决方案,Ubuntu下有个叫OnBoard的虚拟键盘程序,就是用这个包包实现的。 前者接受keysym作为参数,后者接受键位的unicode. 举个例子: import virtkey simulate() 如果不用virtkey怎么办嗯?好说,请看virtkey的源码。 |