修改注册表

实验要求:
(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;
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值