반응형
레지스트리 컨트롤하는 예제..
백번 설명보다는 그냥 깔끔하고 쉬운예제가 머리에 쏙쏙 들어온다.
레지스트리 읽기
// 레지스트리 읽기 //
LONG lResult;
HKEY hKey;
DWORD dwType;
DWORD dwBytes=100;
char buffer[100];
// open Regstry Key
lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0, KEY_ALL_ACCESS, &hKey);
if(lResult != ERROR_SUCCESS)
{
AfxMessageBox("Register Open Error");
}
// Read Regstry Key
lResult=RegQueryValueEx(hKey, "abc", 0, &dwType, (LPBYTE)buffer, &dwBytes);
if(lResult == ERROR_SUCCESS)
AfxMessageBox(buffer);
else
AfxMessageBox("Register Read Error");
RegCloseKey(hKey);
```
## 레지스트리 추가
```cpp
// 레지스트리 추가 //
LONG lResult;
char buffer[100];
HKEY hKey;
DWORD dwDesc;
char *path = "c:\\winnt\\system32\\notepad.exe"; // 노트 패드 경로
// 레지스트리 열고
RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0, KEY_ALL_ACCESS, &hKey);
// Set Registry Key & Value
lResult = RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0, buffer,
REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL,
&hKey, &dwDesc);
if(lResult == ERROR_SUCCESS)
{
RegSetValueEx(hKey, "abc", 0, REG_SZ, (BYTE*)path, strlen(path));
}
//레지스트리 닫고
RegCloseKey(hKey);
레지스트리 삭제
// 레지스트리 삭제//
LONG lResult;
HKEY hKey;
DWORD dwBytes=100;
CString str = "abc";
// open Regstry Key
lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",
0, KEY_ALL_ACCESS, &hKey);
if(lResult != ERROR_SUCCESS)
{
AfxMessageBox("Register Open Error");
}
lResult = RegDeleteValue(hKey, str); // 삭제
if (lResult == ERROR_SUCCESS)
AfxMessageBox("레지스터 삭제 성공");
else
AfxMessageBox("실패당...ㅠㅠ");
RegCloseKey(hKey);
레지스트리 쓰기
CRegKey RegKey;
RegKey.Create(HKEY_LOCAL_MACHINE,"SOFTWARE\\test");
RegKey.SetValue("저장할 변수명", "test");
RegKey.Close();
반응형