修改注册表
實(shí)驗(yàn)要求:
(1)用RegOpenKeyEx()函數(shù)打開(kāi)注冊(cè)表項(xiàng):
HKEY_CURRENT_USER\Software\Microsoft\Windows\Currest Version\Policies\System。如果該注冊(cè)
表項(xiàng)不存在,則用RegCreateKeyEx()函數(shù)創(chuàng)建該項(xiàng)。
(2)如果該項(xiàng)為新創(chuàng)建的,則新建立一個(gè)REG_SZ值項(xiàng)DisableChangePassword和一個(gè)REG_DWORD值項(xiàng)
dword。如果該值項(xiàng)已經(jīng)存在,則用RegQueryValueEx()讀取值項(xiàng)DisableRegistryTools的dword的值。
(3)用wsprintf()和MessageBox()函數(shù)把項(xiàng)值顯示在屏幕上。
(4)將值項(xiàng)dword的值置為1。
(5)用RegFlushKey()函數(shù)將對(duì)注冊(cè)表項(xiàng)的修改寫入注冊(cè)表。
(6)用RegCloseKey()函數(shù)關(guān)閉打開(kāi)的注冊(cè)表項(xiàng)。
(7)編譯執(zhí)行立即生效。
(8)發(fā)regedit命令驗(yàn)證結(jié)果。
#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表項(xiàng)創(chuàng)建成功"),TEXT("修改注冊(cè)表"),MB_OK);}elseMessageBox(NULL,TEXT("System表項(xiàng)創(chuàng)建失敗"),TEXT("修改注冊(cè)表"),MB_OK);}elseMessageBox(NULL,TEXT("System表項(xiàng)已經(jīng)存在"),TEXT("修改注冊(cè)表"),MB_OK);//查詢鍵值DisableChangePasswordRegQueryValueEx(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("注冊(cè)表修改"),MB_OK);}else{if(RegSetValueEx(hKey,"DisableChangePassword",0,REG_SZ,(const BYTE*)inBuffer1,strlen(inBuffer1)+1)==ERROR_SUCCESS){RegFlushKey(hKey);MessageBox(NULL,TEXT("DisableChangePassword鍵值設(shè)置成功"),TEXT("修改注冊(cè)表"),MB_OK);}elseMessageBox(NULL,TEXT("DisableChangePassword鍵值設(shè)置失敗"),TEXT("修改注冊(cè)表"),MB_OK);}//查詢鍵值dwordRegQueryValueEx(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("修改注冊(cè)表"),MB_OK);}else{if(RegSetValueEx(hKey,"dword",0,REG_DWORD,(const BYTE*)&indwData,sizeof(DWORD))==ERROR_SUCCESS){RegFlushKey(hKey);MessageBox(NULL,TEXT("dword鍵值設(shè)置成功"),TEXT("修改注冊(cè)表"),MB_OK);}elseMessageBox(NULL,TEXT("dword鍵值設(shè)置失敗"),TEXT("修改注冊(cè)表"),MB_OK);}RegCloseKey(hKey);return 0; }總結(jié)
- 上一篇: 美国邮编大全及邮政编码规范
- 下一篇: 盒模型