您的位置:首页 > 其它

修改注册表

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命令验证结果。

#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;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: