

猜您喜欢:
平时使用电脑的时候总是不小心碰到不该点的按键导致误操作怎么办?今天小编带来的这款operatereg.exe【C++】可以帮助我们解决这个问题!软件能够帮助用户开启笔记本电脑的禁用功能,从而让使用的时候禁用某些键盘功能,需要用管理员身份运行,重启计算机之后就可以实现了!
之所以写这个程序,是因为宿舍桌子太小。有时把外接键盘叠在笔记本键盘上,容易误触到笔记本键盘,从而导致一些莫名其妙的问题困扰自己。
于是找了些资料了解到了如何禁用笔记本键盘的方法:
+ 禁用设备法。详细教程请点击 [这里](https://jingyan.baidu.com/article/77b8dc7fb9aa336175eab674.html)
+ 修改注册表法。详细教程请点击 [这里](https://www.52pojie.cn/thread-1445700-1-2.html)
可能会有人问:为什么不省事点选用禁用设备法,而是写代码再来操作注册表,来禁用键盘这么麻烦的方法呢?原因很简单,突然对编程语言操作注册表很感兴趣,就这么做了。
工具需要以管理员方式启动
+由于修改注册表后,需要重启电脑后才能生效。所以代码中加入了询问“是否立刻重启”的语句
#include
#include
#include
using namespace std;
void write_dword();
//测试成功,读取到start的当前值//读取操作表,其类型为DWORD
void read_dword(){
HKEY hKEY;//定义有关的键,在查询结束时关闭
//打开与路径data_Set相关的hKEY
char i,x;
LPCTSTR data_set = _T("SYSTEM⁄⁄CurrentControlSet⁄⁄Services⁄⁄i8042prt");
//访问注册表,hKEY则保存此函数所打开的键的句柄
if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_set, 0, KEY_READ, &hKEY)){
DWORD dwValue;//长整型数据,如果是字符串数据用char数组
DWORD dwSize = sizeof(DWORD);
DWORD dwType = REG_DWORD;
if (::RegQueryValueEx(hKEY, _T("Start"), 0, &dwType, (LPBYTE)&dwValue, &dwSize) != ERROR_SUCCESS)
cout << "错误:无法查询有关的注册表信息" << endl;
switch (dwValue){
case 3:
cout << "当前笔记本键盘状态为:启用 " << "(" << hex << dwValue << ")" << endl << endl << "若需要禁用请输入字母:y或Y" << endl;
cin >> i;
if (i == 'y'|| i == 'Y') {
write_dword();
}
break;
case 4:
cout << "当前笔记本键盘状态为:禁用 " << "(" << hex << dwValue << ")" << endl << endl << "若需要启用请输入字母:y或Y" << endl;
cin >> x;
if (x == 'y' || x == 'Y') {
write_dword();
}
break;
default:
cout << "当前笔记本键盘状态获取未知 " << "(" << hex << dwValue << ")" << endl << endl;
break;
}
}
::RegCloseKey(hKEY);
}
//测试成功,读取到start设备名displayname//读取操作表,其类型为REG_SZ
void read_reg_sz(){
HKEY hkey;
LPCTSTR data_set = _T("SYSTEM⁄⁄CurrentControlSet⁄⁄Services⁄⁄i8042prt");
if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_set, 0, KEY_READ, &hkey)){
char dwValue[256];
DWORD dwSzType = REG_SZ;
DWORD dwSize = 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
void write_dword(){
HKEY hkey;//定义有关的hkey,在查询结束时要关闭
HKEY hTempKey;
char ans;
int flag;
DWORD dwValue;
DWORD dwSize = sizeof(DWORD);
DWORD dwType = REG_DWORD;
LPCTSTR data_set = _T("SYSTEM⁄⁄CurrentControlSet⁄⁄Services⁄⁄i8042prt");
cout << "请设置当前笔记本键盘状态,输入数字:3,表示开启键盘;输入数字4,表示禁用键盘;" << endl;
cin >> flag;
switch (flag) {
case 3:
dwValue = flag; break;
case 4:
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, (CONST BYTE*) & dwValue, sizeof(DWORD))){
cout << "写入注册表失败" << endl;
}
cout << "修改成功!" << endl << "是否立刻重启电脑,使设置立即生效?" << endl << "输入y或Y,以立刻重新启动电脑;输入n或N退出程序" << endl;
cin >> ans;
if (ans == 'y' || ans == 'Y') {
cout << "再次确认,要立刻重启电脑吗?⁄n⁄n输入y或Y,以立刻重新启动电脑;输入n或N退出程序" << endl;
cin >> ans;
if (ans == 'y' || ans == 'Y')
system("shutdown -r -t 0");
}
else
exit(1);
//}
}
::RegCloseKey(hkey);
}
//测试成功,更改(创建)子键test111及其键值项Name到start键值
void write_binary(){
HKEY hkey;
HKEY hTempKey;
BYTE m_name[10];
memset(m_name, 0, sizeof(m_name));
m_name[0] = 0xff;
m_name[1] = 0xac;
m_name[2] = 0x05;
m_name[3] = 0x4e;
LPCTSTR data_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, (unsigned char*)m_name, 5)){
cout << "写入错误" << endl;
}
}
}
::RegCloseKey(hkey);
}
//测试成功,更改(创建)子键test111及其键值项Name到start键值
void write_reg_sz(){
HKEY hkey;
HKEY hTempKey;
char m_name_set[256] = "China";
DWORD len = strlen(m_name_set) + 1;
LPCTSTR data_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, (const BYTE*)m_name_set, len)){
cout << "写入错误" << endl;
}
}
}
::RegCloseKey(hkey);
}
//测试成功,将键值项Name删除
void delete_value()
{
HKEY hkey;
LPCTSTR data_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删除
void delete_key(){
HKEY hkey;
LPCTSTR data_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);
}
void menu(){
cout << "欢迎使用本工具" << endl << endl;
read_reg_sz();
cout << endl << "已为您查询到该笔记本当前键盘状态为:" ;
read_dword();
}
int main(){
menu();
system("pause");
return 0;
}
以上就是operatereg.exe【C++】的全部内容了,快快收藏非凡软件站下载更多软件和游戏吧!

键盘修改器 键盘修改器能将键盘上的按键互相交换,可以模拟普通PC键盘,用于游戏改键、日常工作改键,旨在帮助各位网民更加方便的修改键盘按键。小凡为您提供多款键盘修改器相关的软件供您选择哦!快来选择下载吧!



大漠驼铃屏蔽按键工具V1.23 大漠驼铃屏蔽按键工具是一款键盘屏蔽软件,用户可以随着自己想要...详情>>

KeyTweak(按键修改器)v2.26 KeyTweak 能将键盘上的按键互相交换,可以模拟普通PC...详情>>
在使用布袋鼠小说app享受精彩小说的过程中,恼人的广告推送常常让人兴致全无。别担心,下面就为你介绍简单有效的关闭广告推送方法。首先,打开布袋鼠小说app,进入主界面。通常在界面的角落或侧边栏能找到设置选项,点击它。进入设置页面后,仔细浏览各项设置内容,寻找与“
在华为手机的众多实用功能中,智慧语音为用户带来了便捷的操作体验。将华为智慧语音添加到桌面,能让我们更快速地调用它,提升使用效率。下面就来详细介绍如何添加。一、不同华为手机系统版本的添加方法(一)emui系统1.在主屏幕上长按空白处,进入主屏幕编辑界面。2.点击
在使用恒星播放器享受精彩影视内容时,有时我们希望画面更加简洁纯粹,避免鼠标指针干扰沉浸感。别担心,恒星播放器提供了方便的设置选项,让你轻松实现播放时不显示鼠标指针。首先,打开恒星播放器。进入播放器界面后,找到界面中的“设置”按钮。这个按钮通常在播放器的主界面角
在点点穿书app的世界里,能量可是至关重要的资源。它能助力我们在书海畅游,解锁更多精彩剧情。那么,如何免费获取能量呢?下面就为大家详细介绍几种实用的方法。每日签到每日签到是获取能量最基础且稳定的方式。每天打开点点穿书app,进入签到页面,只需轻轻一点,就能收获
在当今数字化的时代,各种实用的app层出不穷,笔袋app便是其中一款备受欢迎的应用。然而,对于许多新手用户来说,找到笔袋app里的收藏功能仿佛在探索一个神秘的宝藏世界。别担心,今天就让我们一起揭开笔袋app收藏的藏身之谜。当你打开笔袋app,首先映入眼帘的是它
在语言学习的旅程中,hellotalk是一款备受欢迎的语言交流应用程序。它为全球各地的语言学习者提供了一个便捷的交流平台,让大家能够与母语者直接互动,提升语言能力。而对于一些已经在hellotalk上使用一段时间的用户来说,可能会有修改母语设置的需求。首先,要
本站所有资源(含游戏)均是软件作者、开发商投稿,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任,所有资源请在下载后24小时内删除。
如侵犯了您的版权、商标等,请立刻联系我们并具体说明情况后,本站将尽快处理删除,联系
(版权说明注意事项)。若有关在线投稿、无法下载等问题,请与本站客服人员联系
!
用户可自行按线路选择相应的下载点,可以直接点击下载/另存为,若直接点击下载速度太慢,请尝试使用高速下载器。为确保下载的文件能正常使用,请使用WinRAR最新版本解压本站软件。
建议大家谨慎对待所下载的文件,大家在安装的时候务必留意每一步!关于360安全卫士或QQ电脑管家的有关提示,请自行注意选择操作。