当前位置: 首页 > news >正文

松江新城建设发展有限公司网站网易企业邮箱客户端

松江新城建设发展有限公司网站,网易企业邮箱客户端,国家职业技能培训平台,网站运营专员做六休一Windows注册表#xff08;Registry#xff09;是Windows操作系统中用于存储系统配置信息、用户设置和应用程序数据的一个集中式数据库。它是一个层次结构的数据库#xff0c;由键#xff08;Key#xff09;和值#xff08;Value#xff09;组成#xff0c;这些键和值被…Windows注册表Registry是Windows操作系统中用于存储系统配置信息、用户设置和应用程序数据的一个集中式数据库。它是一个层次结构的数据库由键Key和值Value组成这些键和值被用于存储各种系统和应用程序的配置信息。 以下是注册表的一些基本概念 键Key 注册表中的数据结构类似于文件夹用于组织和存储相关的信息。每个键可以包含子键和/或值。子键Subkey 位于注册表中的键的层次结构中的更深一层的键。子键可以包含其他子键或值。值Value 存储在注册表中的数据单元通常与键相关联。值可以包含配置信息、用户设置等数据。数据类型Data Type 值的数据类型定义了值的内容和用途。常见的数据类型包括字符串、整数、二进制数据等。根键Root Key 注册表的最顶层有几个根键常见的包括 HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE 等。 Windows注册表的作用包括 存储系统配置信息 注册表中存储了操作系统的配置信息包括系统启动时需要加载的驱动程序、系统服务、文件关联等。存储用户设置 注册表中存储了用户特定的设置如桌面背景、主题、鼠标指针样式等。应用程序配置 许多应用程序使用注册表存储其配置信息。当应用程序安装时它可能会在注册表中创建相关的键和值来保存配置。组织系统和应用程序数据 注册表提供了一个结构化的方式来组织系统和应用程序需要存储的数据使得操作系统和应用程序可以轻松地检索和修改配置信息。提供对系统设置的访问 通过注册表用户和系统管理员可以访问和修改系统的各种设置从而对系统行为进行调整和优化。 枚举注册表项 RegOpenKeyEx 是一个用于打开指定的注册表键的 Windows API 函数。它允许应用程序访问和操作 Windows 注册表的子键。在较新的 Windows 版本中例如 Windows 10RegOpenKeyEx 已被推荐的函数 RegOpenKey 和 RegOpenKeyEx 代替。以下是 RegOpenKeyEx 的一般用法 LSTATUS RegOpenKeyEx(HKEY hKey,LPCTSTR lpSubKey,DWORD ulOptions,REGSAM samDesired,PHKEY phkResult );参数说明 hKey: 指定要打开的基础键的句柄可以是 HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE 等。lpSubKey: 指定相对于 hKey 的子键路径。ulOptions: 保留参数通常可以设置为 0。samDesired: 指定键的访问权限例如 KEY_READ 或 KEY_WRITE。phkResult: 接收指向打开的注册表键的句柄的指针。 函数返回值 如果函数调用成功返回 ERROR_SUCCESS。如果函数调用失败返回一个错误代码。 RegEnumValue 用于列举指定注册表键中的值。它可以用来遍历注册表键中的所有值以便你可以获取键中包含的信息。以下是 RegEnumValue 的一般用法 LSTATUS RegEnumValue(HKEY hKey,DWORD dwIndex,LPTSTR lpValueName,LPDWORD lpcchValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData );参数说明 hKey: 指定要列举值的注册表键的句柄。dwIndex: 指定要检索的值的索引。从 0 开始逐渐递增。lpValueName: 接收值的名称的缓冲区。lpcchValueName: 接收值名称的缓冲区大小的指针。在调用函数之前你应该将其设置为缓冲区大小。lpReserved: 保留参数通常可以设置为 NULL。lpType: 接收值的数据类型的指针。lpData: 接收值的数据的缓冲区。lpcbData: 接收数据缓冲区大小的指针。在调用函数之前你应该将其设置为缓冲区大小。 函数返回值 如果函数调用成功返回 ERROR_SUCCESS。如果函数调用失败返回一个错误代码。 枚举指定键值对中是否存在值如果存在则循环将其输出。 #include stdio.h #include Windows.hvoid Enum_Regedit(HKEY Reg_Root,const char *Reg_Path) {HKEY hKey NULL;DWORD dwType 0;char szValueName[MAXBYTE], szValueKey[MAXBYTE] { 0 };DWORD dwBufferSize MAXBYTE, dwKeySize MAXBYTE;// 打开注册表项LONG lRet RegOpenKeyEx(Reg_Root, Reg_Path, 0, KEY_ALL_ACCESS, hKey);int index 0;while (1){// 枚举注册表键项lRet RegEnumValue(hKey, index, szValueName, dwBufferSize, NULL,dwType, (unsigned char *)szValueKey, dwKeySize);if (lRet ERROR_NO_MORE_ITEMS)break;printf(序号: %3d 名称: %-25s 值: %-50s 类型: , index, szValueName, szValueKey);switch (dwType){case 1: printf(REG_SZ \n); break;case 2: printf(REG_EXPAND_SZ \n); break;case 4: printf(REG_DWORD \n); break;case 7: printf(REG_MULTI_SZ \n); break;default: printf(None \n); break;}dwBufferSize MAXBYTE;dwKeySize MAXBYTE;index;}RegCloseKey(hKey); }int main(int argc, char *argv[]) {// 枚举普通启动项Enum_Regedit(HKEY_LOCAL_MACHINE, Software\\Microsoft\\Windows\\CurrentVersion\\Run);Enum_Regedit(HKEY_CURRENT_USER, Software\\Microsoft\\Windows\\CurrentVersion\\Run);// 枚举Boot启动项// HKLM\System\CurrentControlSet\Control\Session Manager\BootExecuteEnum_Regedit(HKEY_LOCAL_MACHINE, System\\CurrentControlSet\\Control\\Session Manager\\);// 枚举ActiveX启动项,在子键中添加SubPath即可完成开机自启动.Enum_Regedit(HKEY_LOCAL_MACHINE, SOFTWARE\\Microsoft\\Active Setup\\Installed Components\\);system(pause);return 0; }添加注册表项 RegCreateKey 是用于创建或打开指定的注册表键。如果键不存在则它将被创建如果存在则它将被打开。以下是 RegCreateKey 的一般用法 LSTATUS RegCreateKey(HKEY hKey,LPCTSTR lpSubKey,PHKEY phkResult );参数说明 hKey: 指定要创建或打开的基础键的句柄可以是 HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE 等。lpSubKey: 指定相对于 hKey 的子键路径。phkResult: 接收指向创建或打开的注册表键的句柄的指针。 函数返回值 如果函数调用成功返回 ERROR_SUCCESS。如果函数调用失败返回一个错误代码。 RegSetValueEx 是用于在指定的注册表键中设置一个值。它可以用于创建新的键值也可以用于修改现有键值。以下是 RegSetValueEx 的一般用法 LSTATUS RegSetValueEx(HKEY hKey,LPCTSTR lpValueName,DWORD Reserved,DWORD dwType,const BYTE *lpData,DWORD cbData );参数说明 hKey: 指定要设置值的注册表键的句柄。lpValueName: 指定要设置的值的名称。Reserved: 保留参数通常可以设置为 0。dwType: 指定值的数据类型例如 REG_SZ 表示字符串。lpData: 指定要设置的值的数据。cbData: 指定数据的大小。 函数返回值 如果函数调用成功返回 ERROR_SUCCESS。如果函数调用失败返回一个错误代码。 通过获取自身进程名称并将该进程路径写入到CurrentVersion变量中实现开机自启。 #include stdio.h #include Windows.h#define Reg_Path Software\\Microsoft\\Windows\\CurrentVersion\\RunBOOL Reg_Regedit(HKEY Reg_Root,char *lpszFileName, char *lpszValueName) {HKEY hKey;if (ERROR_SUCCESS ! RegOpenKeyEx(Reg_Root, Reg_Path, 0, KEY_WRITE, hKey)){return FALSE;}if (ERROR_SUCCESS ! RegSetValueEx(hKey, lpszValueName, 0, REG_SZ, (BYTE *)lpszFileName, (1 ::lstrlen(lpszFileName)))){RegCloseKey(hKey);return FALSE;}RegCloseKey(hKey);return TRUE; }int main(int argc, char *argv[]) {TCHAR szPath[MAX_PATH] { 0 };if (GetModuleFileName(NULL, szPath, MAX_PATH)){int ret Reg_Regedit(HKEY_CURRENT_USER, szPath, main);if (ret 1)printf(添加自身启动项成功 \n);}system(pause);return 0; }注册表项不仅可以实现开机自启动由于Win系统都是在注册表之上工作的只要向指定位置写入键值,即可实现许多不可思议的功能。 // 禁用系统任务管理器 void RegTaskmanagerForbidden() {HKEY hkey;DWORD value 1;RegCreateKey(HKEY_CURRENT_USER, Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System, hkey);RegSetValueEx(hkey, DisableTaskMgr, NULL, REG_DWORD, (LPBYTE)value, sizeof(DWORD));RegCloseKey(hkey); }// 禁用注册表编辑器 void RegEditForbidden() {HKEY hkey;DWORD value 1;RegCreateKey(HKEY_CURRENT_USER, Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System, hkey);RegSetValueEx(hkey, DisableRegistryTools, NULL, REG_DWORD, (LPBYTE)value, sizeof(DWORD));RegCloseKey(hkey); }// 干掉桌面壁纸 void RegModifyBackroud() {DWORD value 1;HKEY hkey;RegCreateKey(HKEY_CURRENT_USER, Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System, hkey);RegSetValueEx(hkey, Wallpaper, NULL, REG_SZ, (unsigned char *)c://, 3);RegSetValueEx(hkey, WallpaperStyle, NULL, REG_DWORD, (LPBYTE)value, sizeof(DWORD)); }判断键值状态 RegQueryValueEx 是用于检索指定注册表键中的指定值。它可以用来获取注册表键中的数据例如字符串、整数等。以下是 RegQueryValueEx 的一般用法 LSTATUS RegQueryValueEx(HKEY hKey,LPCTSTR lpValueName,LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData );参数说明 hKey: 指定要查询值的注册表键的句柄。lpValueName: 指定要查询的值的名称。lpReserved: 保留参数通常可以设置为 NULL。lpType: 接收值的数据类型的指针。lpData: 接收值的数据的缓冲区。lpcbData: 接收数据缓冲区大小的指针。在调用函数之前你应该将其设置为缓冲区大小。 函数返回值 如果函数调用成功返回 ERROR_SUCCESS。如果函数调用失败返回一个错误代码。 判断指定键值对是否存在,是否被设置过. #include stdio.h #include Windows.h#define Reg_Path Software\\Microsoft\\Windows\\CurrentVersion\\RunBOOL Check_Regedit(HKEY Reg_Root,char * name) {HKEY hKey;if (ERROR_SUCCESS RegOpenKeyEx(Reg_Root, Reg_Path, NULL, KEY_ALL_ACCESS, hKey)){DWORD dwSize 255, dwType REG_SZ;char String[256];if (ERROR_SUCCESS RegQueryValueEx(hKey, name, 0, dwType, (BYTE *)String, dwSize)){return true;}}RegCloseKey(hKey);return false; }int main(int argc, char *argv[]) {int ret Check_Regedit(HKEY_CURRENT_USER, ctfmon);printf(启动项存在: %d \n, ret);system(pause);return 0; }删除键值对 RegDeleteValue 是用于删除指定注册表键中的指定值。它可以用来删除注册表键中的数据值。以下是 RegDeleteValue 的一般用法 LSTATUS RegDeleteValue(HKEY hKey,LPCTSTR lpValueName );参数说明 hKey: 指定要删除值的注册表键的句柄。lpValueName: 指定要删除的值的名称。 函数返回值 如果函数调用成功返回 ERROR_SUCCESS。如果函数调用失败返回一个错误代码。 传入需要删除的注册表位置以及该表中键值对的名字即可完成删除。 #include stdio.h #include Windows.hvoid Delete_Regedit(const char *Reg_Path,const char *Key_Name) {char szKeyName[MAXBYTE] { 0 };HKEY hKey NULL;LONG lRet RegOpenKeyEx(HKEY_LOCAL_MACHINE, Reg_Path, 0, KEY_ALL_ACCESS, hKey);RegDeleteValue(hKey, Key_Name);RegCloseKey(hKey); }int main(int argc, char *argv[]) {Delete_Regedit(Software\\Microsoft\\Windows\\CurrentVersion\\Run, main1);system(pause);return 0; }
http://www.pierceye.com/news/453547/

相关文章:

  • 建网站的意义大学跳蚤市场网站建设
  • 平阳做网站成都网站优化公司哪家好
  • 庆阳北京网站建设广东省建设工程执业中心网站
  • 佛山哪里有做网站的大学生文创产品设计
  • 电商网站建设运城网站图片链接怎么做的
  • 服务器建网站教程宁波网络营销推广制作
  • 微信公众号属于网站建设网站云解析域名解析
  • 网站的建设及推广在哪找可以做网站的
  • 网站经常修改好不好北京互联网公司50强
  • 知识网站有哪些h5用什么制作
  • 广州网站制作联系方式上海共有多少家企业
  • 自己建一个网站需要什么网站关键词分析工具
  • 建三江建设局网站四川省建设厅官方网站电话
  • 福建志佳建设工程发展有限公司网站vi品牌包装
  • 专业门户网站开发公司龙岩正规全网品牌营销招商
  • 网站怎么做qq微信登陆政务网站的建设时期的概述
  • 购物网站的目的和意义西安做网站xamokj
  • 厦门市建设局网站网站开发周记30篇
  • 工业园区门户网站建设方案塘沽网站开发
  • 郑州网站设计 公司驻马店市可以做网站的公司
  • 推荐盐城网站开发安陆网站开发
  • wordpress中文网站模板软件开发者路线图
  • 福清市建设局网站深圳网站制作品牌祥奔科技
  • 工程建设采购有哪些网站做网络销售怎么样
  • wordpress数据库和网站文件下载商业网站成功的原因
  • 30岁转行做网站设计百度秒收网站
  • 网页设计与制作心得体会1000福州网站seo公司
  • 学校网站定位手机网站建设怎么样
  • 苏州科技网站建设模板网站 seo
  • 免费qq刷赞网站推广网站建设具体项目及价格