当前位置:  技术问答>linux和unix

在keyboard.c的如下代码处修改下是不是就可以捕获每个按键了?

    来源: 互联网  发布时间:2016-08-16

    本文导语:  2.6.31内核,drivers/char/keyboard.c 在如下注释处追加类似echo的语句将value追加到磁盘某文件中是否就可以记录每个键值? 我是新手= =,欢迎各位拍砖,感觉keyboard里面东西很杂,尤其keycode处理函数,里面细节部分太多...

2.6.31内核,drivers/char/keyboard.c

在如下注释处追加类似echo的语句将value追加到磁盘某文件中是否就可以记录每个键值?

我是新手= =,欢迎各位拍砖,感觉keyboard里面东西很杂,尤其keycode处理函数,里面细节部分太多了,不想入门就看太仔细,梳理了结构后觉得要捕获键值就得在这里,不管是调用kbd_rawcode还是kbd_keycode,到最后基本都是把value原封不动地put_queue了(除了大于128时在keycode里有个分解再移位的操作),所以直接在这里把value记录到磁盘的一个文件上,应该就可以了吧?

以上推测同时还建立在每次重新启动的时候系统都会用源码重新编译一次驱动然后加载的假设上,不然修改这个应该也没用。。。。

额,说完了,等学长们指点了~


1313static void kbd_event(struct input_handle *handle, unsigned int event_type,
1314                      unsigned int event_code, int value)
1315{
1316        /* We are called with interrupts disabled, just take the lock */
1317        spin_lock(&kbd_event_lock);
1318
1319        if (event_type == EV_MSC && event_code == MSC_RAW && HW_RAW(handle->dev))
1320                kbd_rawcode(value);
1321        if (event_type == EV_KEY)
1322                kbd_keycode(event_code, value, HW_RAW(handle->dev));
1323
1324        spin_unlock(&kbd_event_lock);
1325//======================在这里用echo将value写入磁盘某文件中?=============================
1326        tasklet_schedule(&keyboard_tasklet);
1327        do_poke_blanked_console = 1;
1328        schedule_console_callback();
1329}


|
这里你要用到struct file *fp=filp_open 等函数进行操作文件
echo 你试过?

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing.plaf.basic类basicsplitpaneui的类成员方法: keyboard_divider_move_offset定义及介绍
  • JavaScript 快捷键库 keyboard.backbone.js
  • 快捷键美化 KeyBoarder
  • windows keyboard locker
  • jQuery虚拟键盘插件 jQuery keyboard
  • Android 键盘连接工具 Remote Keyboard
  • select的問題和keyboard訊息
  • 监听键盘事件的js库 keyboard_shortcuts
  • 在bash里,脚本的第一行怎么write?(sorry,keyboard damaged)
  • 问个2.6.12 kernel的usb keyboard的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3