猜您喜欢:
平时使用电脑的时候总是不小心碰到不该点的按键导致误操作怎么办?今天小编带来的这款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键盘,用于游戏改键、日常工作改键,旨在帮助各位网民更加方便的修改键盘按键。小凡为您提供多款键盘修改器相关的软件供您选择哦!快来选择下载吧!
Tickeys64位Windows中文版v1.2.2 经常打字觉得很枯燥的朋友们可以试试小编带来的这款&n...详情>>
EPKL(键盘布局编辑软件)v1.2.6 EPKL 适用于Windows系统,可以帮助用户对键盘的各种...详情>>
MapKeyboardv2.6 有些朋友喜欢玩一些电脑游戏,但是游戏中的快速按键会和系统的快...详情>>
在二手交易市场中,转转是一个非常受欢迎的平台,它为买卖双方提供了一个便捷、安全的交易环境。如果你也想通过转转售卖自己的商品,成为一名卖家,那么这篇文章将为你详细介绍如何注册并开设一个属于自己的卖家店铺。准备工作在开始注册之前,你需要准备一些必要的信息和工具。首
在日常生活中,我们难免会遇到一些想要拉黑的电话,比如骚扰电话、推销电话或者是一些不想再联系的人。苹果手机提供了简单便捷的拉黑电话功能,下面就来详细介绍一下。一、通过通话记录拉黑打开手机的“电话”应用程序,找到想要拉黑的电话号码所在的通话记录。点击该通话记录进入
在日常生活中,我们常常听到“开启飞行模式”这个操作,但很多人可能并不清楚它的具体作用和实际意义。本文将详细解读手机开启飞行模式后的变化,帮助大家更好地理解这一功能。什么是飞行模式?飞行模式是一种手机设置选项,其主要目的是在特定场景下关闭手机的无线通信功能。当您
苹果手机以其出色的性能和用户体验深受大家喜爱,但偶尔也会遇到一些小问题,比如音量键失灵。当遇到这种情况时,先别着急,下面为大家介绍几种可能的解决方法。清洁音量键音量键失灵有可能是因为灰尘、碎屑等杂物进入了按键缝隙,影响了正常的按压反馈。可以使用干净的软毛牙刷,
大眼橙x10pro作为一款备受瞩目的投影仪,其参数表现令人眼前一亮。在亮度方面,大眼橙x10pro拥有高达2400ansi流明的亮度输出。这意味着在各种环境光条件下,都能清晰地投射出明亮且色彩鲜艳的画面,无论是白天还是夜晚,都能为用户带来出色的观影感受,无需担
电脑键盘不亮,着实会给我们的使用带来诸多不便。别着急,下面就为大家详细介绍一下其常见原因及解决方法。一、连接问题1.usb接口松动:检查键盘的usb插头是否牢固地插在电脑的usb接口上。有时候可能会因为不小心碰到或者接口老化等原因导致松动。重新插拔一下,确保插
本站所有资源(含游戏)均是软件作者、开发商投稿,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任,所有资源请在下载后24小时内删除。
如侵犯了您的版权、商标等,请立刻联系我们并具体说明情况后,本站将尽快处理删除,联系
(版权说明注意事项)。若有关在线投稿、无法下载等问题,请与本站客服人员联系
!
用户可自行按线路选择相应的下载点,可以直接点击下载/另存为,若直接点击下载速度太慢,请尝试使用高速下载器。为确保下载的文件能正常使用,请使用WinRAR最新版本解压本站软件。
建议大家谨慎对待所下载的文件,大家在安装的时候务必留意每一步!关于360安全卫士或QQ电脑管家的有关提示,请自行注意选择操作。