operatereg.exe【C++】是一款非常方便笔记本电脑键盘功能禁用脚本,支持开启禁用笔记本键盘,需要右键以管理员身份运行此程序,运行后重新启动计算机!您还在为老是误触而烦恼吗?
软件说明
之所以写这个程序,是因为宿舍桌子太小。有时把外接键盘叠在笔记本键盘上,容易误触到笔记本键盘,从而导致一些莫名其妙的问题困扰自己。
于是找了些资料了解到了如何禁用笔记本键盘的方法:
+禁用设备法。详细教程请点击[这里](https://jingyan.baidu.com/article/77b8dc7fb9aa336175eab674.html)
+修改注册表法。详细教程请点击[这里](https://www.52pojie.cn/thread-1445700-1-2.html)
可能会有人问:为什么不省事点选用禁用设备法,而是写代码再来操作注册表,来禁用键盘这么麻烦的方法呢?原因很简单,突然对编程语言操作注册表很感兴趣,就这么做了。
简单介绍注册表
注册表结构类似文件目录:分为根键、子键和键值项三部分,与文件目录对应的话就是根目录、子目录和文件。简单介绍一下这三部分:
(1)根键
分为5个:HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS和HKEY_CURRENT_CONFIG
(2)子键
可以有多个子键和键值项,就像一个目录中可以有多个子目录和多个文件一样。
(3)键值项
**可以理解为文件,它由三部分组成,分别为:名称、类型、数据。其中类型主要有:REG_BINARY??????????????????????????二进制数据REG_DWORD??????????????????????????32位双字节数据REG_SZ??????????????????????????????????以0结尾的字符串REG_DWORD_BIG_ENDIAN??????????高位排在底位的双字REG_EXPAND_SZ??????????????????????扩展字符串,可以加入变量如%PATH%REG_LINKUNICODE??????????????????符号链接REG_RESOURCE_LIST????????????????设备驱动程序资源列表REG_MULTI_SZ????????????????????????多字符串注册表数据项的数据类型有8种,最常用的是前3种。
操作注册表的几个API函数
需要头文件:atlbase.h
(1)打开一个键
(2)查询某一个键值
(3)设置一个键值
(4)新建指定键
(5)删除注册表指定键下的值
删除注册表项
RegDeleteKey也可用来删除一个键值。在Win95/98平台下,也可用来删除整个子键和键值。但是在WindowsNT/2000平台下,只能用来删除没有子键的键。
使用说明
工具需要以管理员方式启动
特别声明
+由于修改注册表后,需要重启电脑后才能生效。所以代码中加入了询问“是否立刻重启”的语句
源码说明
#include<iostream
#include<atlbase.h
#include<Windows.h
usingnamespacestd;
voidwrite_dword();
//测试成功,读取到start的当前值//读取操作表,其类型为DWORD
voidread_dword(){
HKEYhKEY;//定义有关的键,在查询结束时关闭
//打开与路径data_Set相关的hKEY
chari,x;
LPCTSTRdata_set=_T("SYSTEM\\CurrentControlSet\\Services\\i8042prt");
//访问注册表,hKEY则保存此函数所打开的键的句柄
if(ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_set,0,KEY_READ,&hKEY)){
DWORDdwValue;//长整型数据,如果是字符串数据用char数组
DWORDdwSize=sizeof(DWORD);
DWORDdwType=REG_DWORD;
if(::RegQueryValueEx(hKEY,_T("Start"),0,&dwType,(LPBYTE)&dwValue,&dwSize)!=ERROR_SUCCESS)
cout<<"错误:无法查询有关的注册表信息"<<endl;
switch(dwValue){
case3:
cout<<"当前笔记本键盘状态为:启用"<<"("<<hex<<dwValue<<")"<<endl<<endl<<"若需要禁用请输入字母:y或Y"<<endl;
cini;
if(i=='y'||i=='Y'){
write_dword();
}
break;
case4:
cout<<"当前笔记本键盘状态为:禁用"<<"("<<hex<<dwValue<<")"<<endl<<endl<<"若需要启用请输入字母:y或Y"<<endl;
cinx;
if(x=='y'||x=='Y'){
write_dword();
}
break;
default:
cout<<"当前笔记本键盘状态获取未知"<<"("<<hex<<dwValue<<")"<<endl<<endl;
break;
}
}
::RegCloseKey(hKEY);
}
//测试成功,读取到start设备名displayname//读取操作表,其类型为REG_SZ
voidread_reg_sz(){
HKEYhkey;
LPCTSTRdata_set=_T("SYSTEM\\CurrentControlSet\\Services\\i8042prt");
if(ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_set,0,KEY_READ,&hkey)){
chardwValue;
DWORDdwSzType=REG_SZ;
DWORDdwSize=sizeof(dwValue);
if(::RegQueryValueEx(hkey,_T("DisplayName"),0,&dwSzType,(LPBYTE)&dwValue,&dwSize)!=ERROR_SUCCESS){
cout<<"无法查询有关的注册表信息"<<endl<<endl;
}
cout<<"当前设备名:"<<dwValue<<endl<<endl;
}
::RegCloseKey(hkey);
}
//测试成功,更改(创建)到start键值//在SYSTEM\CurrentControlSet\Services\i8042prt文件夹下读取Start的子键,设置其值为dwValue
voidwrite_dword(){
HKEYhkey;//定义有关的hkey,在查询结束时要关闭
HKEYhTempKey;
charans;
intflag;
DWORDdwValue;
DWORDdwSize=sizeof(DWORD);
DWORDdwType=REG_DWORD;
LPCTSTRdata_set=_T("SYSTEM\\CurrentControlSet\\Services\\i8042prt");
cout<<"请设置当前笔记本键盘状态,输入数字:3,表示开启键盘;输入数字4,表示禁用键盘;"<<endl;
cinflag;
switch(flag){
case3:
dwValue=flag;break;
case4:
dwValue=flag;break;
default:
cout<<"状态值输入错误"<<endl;break;
}
if(ERROR_SUCCESS==RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_set,0,KEY_SET_VALUE,&hkey)){
//if(ERROR_SUCCESS==::RegCreateKey(hkey,_T("解开该段落注释,则可更改为:在SYSTEM\\CurrentControlSet\\Services\\i8042prt下,创建以'该文本内容'为名称的子健,并创建一个名为“Start”的子健,其值为:dwValue"),&hTempKey)){
if(ERROR_SUCCESS!=::RegSetValueEx(hkey,_T("Start"),0,REG_DWORD,(CONSTBYTE*)&dwValue,sizeof(DWORD))){
cout<<"写入注册表失败"<<endl;
}
cout<<"修改成功!"<<endl<<"是否立刻重启电脑,使设置立即生效?"<<endl<<"输入y或Y,以立刻重新启动电脑;输入n或N退出程序"<<endl;
cinans;
if(ans=='y'||ans=='Y'){
cout<<"再次确认,要立刻重启电脑吗?\n\n输入y或Y,以立刻重新启动电脑;输入n或N退出程序"<<endl;
cinans;
if(ans=='y'||ans=='Y')
system("shutdown-r-t0");
}
else
exit(1);
//}
}
::RegCloseKey(hkey);
}
//测试成功,更改(创建)子键test111及其键值项Name到start键值
voidwrite_binary(){
HKEYhkey;
HKEYhTempKey;
BYTEm_name;
memset(m_name,0,sizeof(m_name));
m_name=0xff;
m_name=0xac;
m_name=0x05;
m_name=0x4e;
LPCTSTRdata_set=_T("SYSTEM\\CurrentControlSet\\Services\\i8042prt");
if(ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_set,0,KEY_SET_VALUE,&hkey)){
if(ERROR_SUCCESS==::RegCreateKey(hkey,_T("test111"),&hTempKey)){
if(ERROR_SUCCESS!=::RegSetValueEx(hTempKey,_T("Name"),0,REG_BINARY,(unsignedchar*)m_name,5)){
cout<<"写入错误"<<endl;
}
}
}
::RegCloseKey(hkey);
}
//测试成功,更改(创建)子键test111及其键值项Name到start键值
voidwrite_reg_sz(){
HKEYhkey;
HKEYhTempKey;
charm_name_set="China";
DWORDlen=strlen(m_name_set)+1;
LPCTSTRdata_set=_T("SYSTEM\\CurrentControlSet\\Services\\i8042prt");
if(ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_set,0,KEY_SET_VALUE,&hkey)){
if(ERROR_SUCCESS==::RegCreateKey(hkey,_T("test111"),&hTempKey)){
if(ERROR_SUCCESS!=::RegSetValueEx(hTempKey,_T("Name"),0,REG_SZ,(constBYTE*)m_name_set,len)){
cout<<"写入错误"<<endl;
}
}
}
::RegCloseKey(hkey);
}
//测试成功,将键值项Name删除
voiddelete_value()
{
HKEYhkey;
LPCTSTRdata_set=_T("SYSTEM\\CurrentControlSet\\Services\\i8042prt\\test111");
if(ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_set,0,KEY_SET_VALUE,&hkey))
{
if(ERROR_SUCCESS!=::RegDeleteValue(hkey,_T("Name")))
{
cout<<"删除错误"<<endl;
}
}
::RegCloseKey(hkey);
}
//测试成功,将子键test111删除
voiddelete_key(){
HKEYhkey;
LPCTSTRdata_set=_T("SYSTEM\\CurrentControlSet\\Services\\i8042prt");
if(ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_set,0,KEY_SET_VALUE,&hkey)){
if(ERROR_SUCCESS!=::RegDeleteKey(hkey,"test111")){
cout<<"删除错误"<<endl;
}
}
::RegCloseKey(hkey);
}
voidmenu(){
cout<<"欢迎使用本工具"<<endl<<endl;
read_reg_sz();
cout<<endl<<"已为您查询到该笔记本当前键盘状态为:";
read_dword();
}
intmain(){
menu();
system("pause");
return0;
}
Tags:禁用笔记本自带键盘快捷键,笔记本设置,禁用笔记本键盘命令.
小编点评:软件介绍PDFduMergePDF.
下载小编点评:软件介绍专题:抽奖软件星韵全能抽奖.
下载小编点评:软件介绍专题:谷歌浏览器ChromeRa.
下载小编点评:神曲世界果盘版是十分有趣好玩的仙侠类手游.
下载小编点评:美少女时装秀游戏是休闲类的换装游戏,玩家.
下载小编点评:救援达人手机版是一款超级好玩的闯关.
下载小编点评:junglemash游戏是一款主打三.
下载小编点评:细菌繁殖大作战最新版是一款休闲娱乐.
下载小编点评:鸭子的逆袭中文版是一款专为考验玩家反.
下载小编点评:种子净化之旅中文破解版是一款具有小.
下载小编点评:门当户对游戏是一款非常棒的文字休闲游戏。游.
下载小编点评:反击吧公牛安卓汉化版是一款超级无厘头.
下载小编点评:像素木筏求生游戏让你在游戏中体验有趣.
下载盛世唐门破解版下载-盛世唐门无限钻石内购破解版下载v1.0.3 安卓版
魔法相册下载安装-魔法相册手机版下载v1.1 安卓版
饥饿鲨鱼模拟器下载无敌版-饥饿鲨鱼模拟器最新版本下载v6.4 安卓免费版
圆球炸弹官方版下载-圆球炸弹游戏下载v1.0.8 安卓版
蛇蛇联萌手游下载-蛇蛇联萌最新版下载v1.0.1 安卓版
逆行者手机版下载-逆行者最新版下载v2.0 安卓版
神雕侠侣2手游测试版下载-神雕侠侣手游2内测版下载v2.0.2 安卓体验服
申活汇app下载-申活汇最新版下载v1.1.3 安卓版
铅笔男孩最新版下载-铅笔男孩手游下载v1.1 安卓版
套圈圈ring shot官方版下载-ring shot游戏下载v1.0.2 安卓版
喵星人跳跃游戏下载-喵星人跳跃cat jump下载v1.1.0 安卓最新版
柏拉图之旅最新版下载-柏拉图之旅手机版下载v1.0.6 官网安卓版
暴走小鱼内购破解版下载-暴走小鱼无限金币破解版下载v1.0 安卓版