修改注册表
2015-11-22 15:52
615 查看
实验要求:
(1)用RegOpenKeyEx()函数打开注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Windows\Currest Version\Policies\System。如果该注册
表项不存在,则用RegCreateKeyEx()函数创建该项。
(2)如果该项为新创建的,则新建立一个REG_SZ值项DisableChangePassword和一个REG_DWORD值项
dword。如果该值项已经存在,则用RegQueryValueEx()读取值项DisableRegistryTools的dword的值。
(3)用wsprintf()和MessageBox()函数把项值显示在屏幕上。
(4)将值项dword的值置为1。
(5)用RegFlushKey()函数将对注册表项的修改写入注册表。
(6)用RegCloseKey()函数关闭打开的注册表项。
(7)编译执行立即生效。
(8)发regedit命令验证结果。
(1)用RegOpenKeyEx()函数打开注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Windows\Currest Version\Policies\System。如果该注册
表项不存在,则用RegCreateKeyEx()函数创建该项。
(2)如果该项为新创建的,则新建立一个REG_SZ值项DisableChangePassword和一个REG_DWORD值项
dword。如果该值项已经存在,则用RegQueryValueEx()读取值项DisableRegistryTools的dword的值。
(3)用wsprintf()和MessageBox()函数把项值显示在屏幕上。
(4)将值项dword的值置为1。
(5)用RegFlushKey()函数将对注册表项的修改写入注册表。
(6)用RegCloseKey()函数关闭打开的注册表项。
(7)编译执行立即生效。
(8)发regedit命令验证结果。
#include <stdio.h> #include <windows.h> #include<string.h> int main(void) { char regname1[]="Software\\Microsoft\\Windows\\Currest Version\\Policies\\System"; char inBuffer1[]="pussy"; char outBuffer1[250]; HKEY hKey; DWORD cType1=REG_SZ,cType2=REG_DWORD; DWORD Size1,Size2,indwData=1,outdwData; int ret=RegOpenKey(HKEY_CURRENT_USER,regname1,&hKey); if(ret!=ERROR_SUCCESS) { ret=RegCreateKey(HKEY_CURRENT_USER,regname1,&hKey); if(ret==ERROR_SUCCESS) { RegFlushKey(hKey); MessageBox(NULL,TEXT("System表项创建成功"),TEXT("修改注册表"),MB_OK); } else MessageBox(NULL,TEXT("System表项创建失败"),TEXT("修改注册表"),MB_OK); } else MessageBox(NULL,TEXT("System表项已经存在"),TEXT("修改注册表"),MB_OK); //查询键值DisableChangePassword RegQueryValueEx(hKey,"DisableChangePassword",NULL,NULL,NULL,&Size1); if(RegQueryValueEx(hKey,"DisableChangePassword",NULL,&cType1,(LPBYTE)outBuffer1,&Size1)==ERROR_SUCCESS) { char output1[250]="DisableChangePassword的值为"; strcat(output1,outBuffer1); MessageBox(NULL,output1,TEXT("注册表修改"),MB_OK); } else { if(RegSetValueEx(hKey,"DisableChangePassword",0,REG_SZ,(const BYTE*)inBuffer1,strlen(inBuffer1)+1)==ERROR_SUCCESS) { RegFlushKey(hKey); MessageBox(NULL,TEXT("DisableChangePassword键值设置成功"),TEXT("修改注册表"),MB_OK); } else MessageBox(NULL,TEXT("DisableChangePassword键值设置失败"),TEXT("修改注册表"),MB_OK); } //查询键值dword RegQueryValueEx(hKey,"dword",NULL,NULL,NULL,&Size2); if(RegQueryValueEx(hKey,"dword",NULL,&cType2,(LPBYTE)&outdwData,&Size2)==ERROR_SUCCESS) { char output2[250]; wsprintf(output2,"dword=%d\n",outdwData); MessageBox(NULL,output2,TEXT("修改注册表"),MB_OK); } else { if(RegSetValueEx(hKey,"dword",0,REG_DWORD,(const BYTE*)&indwData,sizeof(DWORD))==ERROR_SUCCESS) { RegFlushKey(hKey); MessageBox(NULL,TEXT("dword键值设置成功"),TEXT("修改注册表"),MB_OK); } else MessageBox(NULL,TEXT("dword键值设置失败"),TEXT("修改注册表"),MB_OK); } RegCloseKey(hKey); return 0; }
相关文章推荐
- 信息安全系统设计基础第十周学习总结
- 角色访问动态生成用户权限菜单树
- 给Libgdx的ShapeRenderer开启抗锯齿
- 【BZOJ】3505: [Cqoi2014]数三角形
- 【BZOJ】3495: PA2010 Riddle
- 第十周实践项目~二叉树遍历思想解决问题
- 极光推送运行错误
- bootstrap 新手入门(三) 按钮组件
- learn go error
- 苏州OJ c005: 二叉树遍历
- HTML5矢量实现文件上传进度条
- 黑马程序员 JavaSE-03 Java基础语法2:语句
- UG二次开发中的坐标系变换与点坐标变换
- JStorm之Nimbus简介
- Autolayout
- 信息安全系统设计基础第十一周学习总结
- 无权边单源最短路径
- linux入侵检测系统Snort安装配置(+ACIDBASE)
- 【SDOI2013】【BZOJ3203】保护出题人
- Android LayoutInflater详解