Linux 使用xmodmap禁用键盘按键(禁用Linux快捷键)
最近在Linux中用QT做项目,开发一个全屏软件运行在公司的设备上,系统是统信UOS Linux系统,设备开机后会立即进入软件,且没有权限不允许用户进入Linux后台。
但有点麻烦,大家都知道,在Linux中,可以按快捷键 Ctrl + Alt + (F1 - F6) ,会进入黑屏终端,在这个黑屏终端就可以使用命令将软件强制关闭(kill);或者按快捷键 Ctrl + Alt + T 可以打开终端窗体,终端就可以使用命令将软件强制关闭;或者按快捷键 Ctrl + Alt + Delete 可以进入关机选项界面,可以调出UOS的后台任务管理器…
这些都是不允许的,所以我在网上找,有什么方式可以禁用统信UOSLinux系统的快捷键,找了很久,没有找到相关的解决方法;但是找到可以使用xmodmap去修改按键和禁用按键,感觉可行,于是自己亲自尝试后发现也可以行,于是记录下来!
Ctrl + Alt + (F1 - F6)
黑屏终端演示图:
Ctrl + Alt + T
终端演示图:
Ctrl + Alt + Delete
进入关机选项界面
存在以上的行为,对系统都是挺危险的,所以,得禁用这些快捷键!
1. xmodmap 是什么?
貌似是可以修改键盘映射和鼠标映射的命令…
查看keycode命令:
xmodmap -pke
…
等等一共有255个。
每个keycode对应一个键盘按键。
禁用键盘按键需要用到这些keycode。
2. 禁用
使用命令:
xmodmap -e 'keycode 数字 = '
暂时禁用键盘按键!
例如:
我在项目中禁用Alt键和F1 - F12键
首先找到左Alt键和右Alt键
代码命令禁用左Alt键和右Alt键:
xmodmap -e 'keycode 64 = ' // 禁用左Alt键
xmodmap -e 'keycode 108 = ' // 禁用右Alt键
让其等于空即可!(直接在终端运行命令即可)
我是在Linux下QT操作的,所以我可以使用C/C++的函数system()去调用命令:
// 暂时禁用Alt键
system("xmodmap -e 'keycode 64 = '"); // key Alt as Left
system("xmodmap -e 'keycode 108 = '"); // key Alt as Right
执行完之后,按键盘Alt键就没有反应了,可以测试快捷键Ctrl + Alt + F2,会发现这个快捷键没法使用了!
使用了取巧的方式进行禁用快捷键!(没办法,网上找不到禁用统信UOS系统的快捷键方法)
但是,使用这种方式有一个小缺点,就是重启系统后,他就会自动恢复了!
这个我看网上有教程说可以将命令写入一个什么什么文件,就可以实现开机自动调用进行禁用了,具体我没试过喔…
禁用F1 - F12:
system("xmodmap -e 'keycode 67 = '");
system("xmodmap -e 'keycode 68 = '");
system("xmodmap -e 'keycode 69 = '");
system("xmodmap -e 'keycode 70 = '");
system("xmodmap -e 'keycode 71 = '");
system("xmodmap -e 'keycode 72 = '");
system("xmodmap -e 'keycode 73 = '");
system("xmodmap -e 'keycode 74 = '");
system("xmodmap -e 'keycode 75 = '");
system("xmodmap -e 'keycode 76 = '");
system("xmodmap -e 'keycode 95 = '");
system("xmodmap -e 'keycode 96 = '");
3. 恢复
手动恢复!
调用命令:
xmodmap -e 'keycode'
恢复键盘按键!
keycode:上面截图等号右边那些字符串!
例如:
恢复左Alt键和右Alt键命令:
xmodmap -e 'keycode 64 = Alt_L Meta_L Alt_L Meta_L'
xmodmap -e 'keycode 108 = Alt_R Meta_R Alt_R Meta_R'
代码恢复:
system("xmodmap -e 'keycode 64 = Alt_L Meta_L Alt_L Meta_L'");
system("xmodmap -e 'keycode 108 = Alt_R Meta_R Alt_R Meta_R'");
这样就可以实现恢复操作了,然后可以测试快捷键Ctrl + Alt + F2,可以发现,又可以正常进入黑屏终端了!
恢复F1 - F12键:
system("xmodmap -e 'keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1'");
system("xmodmap -e 'keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2'");
system("xmodmap -e 'keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3'");
system("xmodmap -e 'keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4'");
system("xmodmap -e 'keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5'");
system("xmodmap -e 'keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6'");
system("xmodmap -e 'keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7'");
system("xmodmap -e 'keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8'");
system("xmodmap -e 'keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9'");
system("xmodmap -e 'keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10'");
system("xmodmap -e 'keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11'");
system("xmodmap -e 'keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12'");
总结
键盘禁用,简单的用法就是这样了,其实xmodmap还有很多高级用法的,例如键盘按键调换,鼠标左右点击调换等等…
我在项目中用法:软件启动就立刻禁用按键(快捷键),当使用权限正常进入后台前,就恢复!
使用很简单,但是却帮我解决很大的问题!
Linux 使用xmodmap禁用键盘按键(禁用Linux快捷键)相关推荐
- 组合用计算机怎么按,一种常用的计算机键盘按键组合(快捷键)-Windows组合键,解释非常详细...
这次仅介绍Win键组合,而在下一期中将介绍Ctrl键组合. Windows键 单个Win键的功能是打开或隐藏"开始"菜单,该菜单的功能与" Ctrl + Esc" ...
- 发送linux键盘消息,在C#程序中模拟发送键盘按键消息
using System.Runtime.InteropServices; 引入键盘事件函数 [DllImport("user32.dll")] public static ext ...
- Python 模拟发送键盘按键
Python 模拟发送键盘按键,模拟快捷键 实现步骤 1.安装第三方库 2.模拟键入键盘按键 3.模拟鼠标点击 在rpa项目中,对于一些客户端软件,例如SAP,经常会用到一些快捷键来提高工作效率,或者 ...
- 在Linux下禁用键盘、鼠标、触摸板(笔记本)等输入设备
在Linux系统下禁用键盘.触摸板.鼠标等输入设备,可以通过xinput命令来实现: 主要涉及: #xinput list #xinput list-props list-number #xinput ...
- linux系统下键盘按键的重新映射——xmodmap工具和xev工具
虽然linux下小键盘还是不能用,但是找到一篇好文章 linux系统下键盘按键的重新映射--xmodmap工具和xev工具 文章目录 1. xev工具: 2. xmodmap工具 大家会不会有时候,感 ...
- linux系统怎么禁用键盘,桌面应用|如何在 Linux 下锁住键盘和鼠标而不锁屏
我四岁的侄女是个好奇的孩子,她非常喜爱"阿凡达"电影,当阿凡达电影在播放时,她是如此的专注,好似眼睛粘在了屏幕上.但问题是当她观看电影时,她经常会碰到键盘上的某个键或者移动了鼠标, ...
- linux kbhit扫描键盘,(转)检测按键(Linux中kbhit()函数的实现)
http://hi.baidu.com/jtntiivtemcnsue/item/90689ce172ee912c5a7cfb1b 编写过MS-DOS程序的人通常都会查找Linux下等同于kbhit的 ...
- python调用linux软键盘_在Linux中使用Python模拟键盘按键
之前在做自动化测试中需要用Python在linux中模拟Ctrl+V 进行路径粘贴,试了很多种方法,起初用了xerox和pyperclip这两个python库,但打开对话框后调用粘贴API无法进行粘贴 ...
- 如何在Redhat 7 Linux系统上停止/启动和禁用/启用防火墙
转载来源:https://linuxconfig.org/how-to-stop-start-and-disable-enable-firewall-on-redhat-7-linux-system ...
- Windows Mobile 6中禁用键盘或者是禁用某些按键(C#)
1. 问题 在Windows Mobile的程序运行过程中需要屏蔽掉某些按键,或者是全部按键. 2. 如果是需要屏蔽掉全部按键,如下方法: 2.1 增加引用: using System.Runtime ...
最新文章
- 2018牛客网暑假ACM多校训练赛(第二场)E tree 动态规划
- python集合例题_python基础练习题、集合的讲解、一些公关方法
- androidsettitle方法_在Android应用程序中,Toolbar.setTitle方法无效-应用程序名称显示为标题...
- [转]javascript小技巧,超强推荐
- Hibernate配置C3P0连接池(在配好基本的hibernate配置下使用)
- 2048java课程设计报告_软件工程——Java版2048游戏学习报告
- [ 转载 ] Java基础14--创建线程的两个方法
- Android 系统(135)---Android anr 分析步骤总结
- linux 共享内存为分配,Linux在x86_64上共享内存分配
- c语言程序设计大一考题,C语言程序设计期末考试试题(含答案)
- 【转】微波射频工程师必读经典参考书
- 计算机控制系统在电厂的应用,计算机控制系统在电厂中的应用.doc
- 博科SAN交换机配置Trunk
- 台式计算机总是重启,电脑为什么老是自动重启?我的电脑经常自动重启!!
- centos7.4更新安装ssh8.8
- 论文文献综述的题目是什么样的,应该怎么写?
- 全面领跑中国DevOps云服务市场,为什么是华为云?
- ios addressbook
- 计算机添加本地安全组用户名和密码错误,u租号总是密码错误-共享用户名和密码正确总提示错误...
- Android肝帝战纪之基于上篇单Activity+多Fragment框架,开发电商式导航栏,多Fragment切换
热门文章
- 视频理解综述:动作识别、时序动作定位、视频Embedding
- 读书笔记:余华--《活着--这是一本书》
- 计算机所有相关系统设置,关于win7系统5种电脑实用设置技巧
- FLV、AAC、AVC封装格式分析
- 【Android RTMP】RTMP 数据格式 ( FLV 视频格式分析 | AVC 序列头格式解析 )
- Android常用库整理
- w10系统服务器连接错误代码,Win10升级失败常见问题及错误代码解决方法汇总
- 数据库 | PostgreSQL从入门到精通
- 淘宝网购物车jquery源码和网易新用户注册页面表单验证的练习
- OFD文件预览—前后端两种实现方式