// CRegisterTest.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <atlbase.h> #include <atlstr.h> #include <Windows.h> using namespace std; //查看HKEY_CURRENT_USER主键下Software//武汉帷幄信息技术有限公司//施工工艺决策系统//系统配置 //BCGPGanttControls//GanttChartBCGPGantt-0子键中名称为GridProgressColumnIndex的值,其类型为DWORD void OnBnClickedQuery() //响应按钮IDC_QUERY { HKEY hKEY;//定义有关的hKEY,在查询结束时要关闭 //打开与路径data_Set相关的hKEY LPCTSTR data_Set = _T("/Software//武汉帷幄信息技术有限公司//施工工艺决策系统//系统配置//BCGPGanttControls//GanttChartBCGPGantt-0"); //访问注册表,hKEY则保存此函数所打开的键的句柄 if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_CURRENT_USER, data_Set, 0, KEY_READ, &hKEY)) { DWORD dwValue; DWORD dwSize = sizeof(DWORD); DWORD dwType = REG_DWORD; if (::RegQueryValueEx(hKEY, _T("GridProgressColumnIndex"), 0, &dwType, (LPBYTE)&dwValue, &dwSize) != ERROR_SUCCESS) { // AfxMessageBox(_T("错误:无法查询有关的注册表信息")); cout << "错误:无法查询有关的注册表信息"<<endl; } //程序结束,关闭打开的hKEY ::RegCloseKey(hKEY); } else{ cout << "注册表操作失败" << endl; } // UpdateData(false); // TODO: 在此添加控件通知处理程序代码 } //查看HKEY_LOCAL_MACHINE主键下SOFTWARE//Microsoft//Windows NT//CurrentVersion子键中名称为"SoftwareType的值,其类型为REG_SZ void OnBnClickedQuery_1(){ HKEY hKEY;//定义有关的hKEY,在查询结束时要关闭 //打开与路径data_Set相关的hKEY /*LPCTSTR data_Set = _T("SOFTWARE\\360Safe\\360krnlsvc");*/ LPCTSTR data_Set = _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"); //打开一个键的函数,第三位为保留值,必须为0,&hKEY为返回值,值为打开子键的句柄 long result = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_Set, 0, KEY_READ, &hKEY); cout << &hKEY << endl;//返回句柄 cout << result<< endl;//ERROR_SUCCESS 如果返回值为0,则表示注册表打开成功 //访问注册表,hKEY则保存此函数所打开的键的句柄 if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, data_Set, 0, KEY_READ, &hKEY)){ char dwValue[256]; DWORD dwSzType = REG_SZ; DWORD dwSize = sizeof(dwValue); if (::RegQueryValueEx(hKEY, _T("SoftwareType"), 0, &dwSzType, (LPBYTE)&dwValue, &dwSize) == ERROR_SUCCESS){ // AfxMessageBox(_T("错误:无法查询有关的注册表信息")); cout << "注册表读取成功" << endl; cout << "读取到的值得地址" << &dwValue << endl; cout << "读取到的值:"; for (int i = 0; i < sizeof(dwValue); i++){ cout << dwValue[i]; } cout << endl; } else{ cout << "注册表读取失败" << endl; cout <<"读取到的值得地址"<< &dwValue << endl; } //程序结束,关闭打开的hKEY ::RegCloseKey(hKEY); } else{ cout << "读取注册表操作失败" << endl; } // UpdateData(false); // TODO: 在此添加控件通知处理程序代码 } //在HKEY_CURRENT_USER主键下写一个Software//武汉帷幄信息技术有限公司//test111子键,设置其名称为Name,类型为DWORD,值为6 void OnBnClickedChange(){//响应按钮IDC_CHANGE{ HKEY hKey;//定义有关的hKEY,在查询结束时要关闭 HKEY hTempKey; DWORD dwValue = 6; DWORD dwSize = sizeof(DWORD); DWORD dwType = REG_DWORD; //打开与路径data_Set相关的hKEY LPCTSTR data_Set = _T("Software//武汉帷幄信息技术有限公司"); if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_CURRENT_USER, data_Set, 0, KEY_SET_VALUE, &hKey)){ // 使用hKey来操作data_Set这个KEY里面的值。 if (ERROR_SUCCESS == ::RegCreateKey(hKey, _T("test111"), &hTempKey)){//背景色 if (ERROR_SUCCESS != ::RegSetValueEx(hTempKey, _T("Name"), 0, REG_DWORD, (CONST BYTE*)&dwValue, sizeof(DWORD))){ //AfxMessageBox(_T("错误")); cout << "错误" << endl; ::RegCloseKey(hKey); return; } } } else{ cout << "写注册表操作失败" << endl; } ::RegCloseKey(hKey); // TODO: 在此添加控件通知处理程序代码 } //MFC中写注册表的方法 // 在HKEY_CURRENT_USER主键下写一个Software//武汉帷幄信息技术有限公司//test111子键,设置其名称为Name,类型为REG_SZ,值为China。 //void OnBnClickedChange(){ // HKEY hKey;//定义有关的hKEY,在查询结束时要关闭 // HKEY hTempKey; // CString m_name = "China"; // LPBYTE m_name_Set = CString_To_LPBYTE(m_name);//定义x轴名称 // DWORD length = m_name.GetLength() + 1;//定义数据长度 // //打开与路径data_Set相关的hKEY // LPCTSTR data_Set = _T("Software//武汉帷幄信息技术有限公司"); // if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_CURRENT_USER, data_Set, 0, KEY_SET_VALUE, &hKey)){ // // 使用hKey来操作data_Set这个KEY里面的值。 // if (ERROR_SUCCESS == ::RegCreateKey(hKey, _T("test111"), &hTempKey)) { // if (ERROR_SUCCESS != ::RegSetValueEx(hTempKey, _T("Name"), 0, REG_SZ, m_name_Set, length)){ // cout << "错误" << endl; // ::RegCloseKey(hKey); // return; // } // } // }else{ // cout << "操作注册表失败" << endl; // } // ::RegCloseKey(hKey); //// UpdateData(false); // // TODO: 在此添加控件通知处理程序代码 //} //在HKEY_CURRENT_USER主键下写一个Software//武汉帷幄信息技术有限公司//test111子键,设置其名称为Name,类型为REG_ BINARY,值为ff ac 05 4e void OnBnClickedChange_1(){ HKEY hKey;//定义有关的hKEY,在查询结束时要关闭 HKEY hTempKey; BYTE m_name[10]; memset(m_name, 0, sizeof(m_name));//将数组m_name清零 m_name[0] = 0xff; m_name[1] = 0xac; m_name[2] = 0x05; m_name[4] = 0x4e; //打开与路径data_Set相关的hKEY LPCTSTR data_Set = _T("Software//武汉帷幄信息技术有限公司"); if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_CURRENT_USER, data_Set, 0, KEY_SET_VALUE, &hKey)){ // 使用hKey来操作data_Set这个KEY里面的值。 if (ERROR_SUCCESS == ::RegCreateKey(hKey, _T("test111"), &hTempKey)){ if (ERROR_SUCCESS != ::RegSetValueEx(hTempKey, _T("Name"), 0, REG_BINARY, (unsigned char *)m_name, 5)){ // AfxMessageBox(_T("错误")); cout << "错误" << endl; ::RegCloseKey(hKey); return; } } } else{ cout << "主键写子键失败" << endl; } ::RegCloseKey(hKey); // UpdateData(false); // TODO: 在此添加控件通知处理程序代码 } //删除HKEY_CURRENT_USER//Software//武汉帷幄信息技术有限公司//test111的键值Name void OnBnClickedDelete(){ HKEY hKey;//定义有关的hKEY,在查询结束时要关闭 //打开与路径data_Set相关的hKEY LPCTSTR data_Set = _T("Software//武汉帷幄信息技术有限公司//test111"); if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_CURRENT_USER, data_Set, 0, KEY_SET_VALUE, &hKey)){ // 使用hKey来操作data_Set这个KEY里面的值。 if (ERROR_SUCCESS != ::RegDeleteValue(hKey, _T("Name"))){ // AfxMessageBox(_T("错误")); cout << "错误" << endl; ::RegCloseKey(hKey); return; } } else{ cout << "删除注册表失败" << endl; } ::RegCloseKey(hKey); // UpdateData(FALSE); // TODO: 在此添加控件通知处理程序代码 } void OnBnClickedDelete_1(){ HKEY hKey;//定义有关的hKEY,在查询结束时要关闭 //打开与路径data_Set相关的hKEY LPCTSTR data_Set = _T("Software//武汉帷幄信息技术有限公司"); if (ERROR_SUCCESS == ::RegOpenKeyEx(HKEY_CURRENT_USER, data_Set, 0, KEY_SET_VALUE, &hKey)){ char *szSubKey = "test111"; int num = MultiByteToWideChar(0, 0, szSubKey, -1, NULL, 0); wchar_t *wide = new wchar_t[num]; MultiByteToWideChar(0, 0, szSubKey, -1, wide, num); // 使用hKey来操作data_Set这个KEY里面的值。 if (ERROR_SUCCESS != ::RegDeleteKey(hKey, wide)){ // AfxMessageBox(_T("错误")); cout << "错误" << endl; ::RegCloseKey(hKey); return; } } else{ cout << "删除注册表失败" << endl; } ::RegCloseKey(hKey); // UpdateData(FALSE); // TODO: 在此添加控件通知处理程序代码 } int _tmain(int argc, _TCHAR* argv[]) { OnBnClickedQuery_1(); cout << "hello" << endl; system("pause"); return 0; }
时间: 2024-10-07 00:44:50