BOOL CCalenderDlg::WriteToRegistry()
{
HKEY hRootKey;
DWORD dwDisp;
CString sValue;
CString sFileName; // 得到程序全路径名
GetModuleFileName( NULL, sFileName.GetBuffer(MAX_PATH), MAX_PATH);
sFileName.ReleaseBuffer(); sValue="SOFTWARE\\FireAngel";
if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, sValue, 0, "", REG_OPTION_NON_VOLATILE,
KEY_WRITE, NULL, &hRootKey, &dwDisp) == ERROR_SUCCESS)
{
//设置运行次数
RegSetValueEx(hRootKey, "RUNTIMES", 0, REG_DWORD,
(PBYTE)&m_dwRunTimes, sizeof(DWORD)); //设置文件运行路径
RegSetValueEx(hRootKey, "FILENAME", 0, REG_SZ,
(BYTE*)(LPCTSTR)sFileName, sFileName.GetLength());
RegCloseKey(hRootKey);
}
else
{
return FALSE;
}
// 查询自动运行项目是否存在
sValue = "Software\\Microsoft\\windows\\CurrentVersion\\Run";
if (RegCreateKeyEx(HKEY_LOCAL_MACHINE,
sValue,
0,
"",
REG_OPTION_NON_VOLATILE,
KEY_READ | KEY_WRITE,
NULL,
&hRootKey,
&dwDisp) == ERROR_SUCCESS)
{
sValue ="CalenderOfFireAngel";
RegSetValueEx(hRootKey, sValue, 0, REG_SZ,
(BYTE*)(LPCTSTR)sFileName, sFileName.GetLength()); RegCloseKey( hRootKey);
}
else
{
return FALSE;
} return TRUE;
}
{
HKEY hRootKey;
DWORD dwDisp;
CString sValue;
CString sFileName; // 得到程序全路径名
GetModuleFileName( NULL, sFileName.GetBuffer(MAX_PATH), MAX_PATH);
sFileName.ReleaseBuffer(); sValue="SOFTWARE\\FireAngel";
if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, sValue, 0, "", REG_OPTION_NON_VOLATILE,
KEY_WRITE, NULL, &hRootKey, &dwDisp) == ERROR_SUCCESS)
{
//设置运行次数
RegSetValueEx(hRootKey, "RUNTIMES", 0, REG_DWORD,
(PBYTE)&m_dwRunTimes, sizeof(DWORD)); //设置文件运行路径
RegSetValueEx(hRootKey, "FILENAME", 0, REG_SZ,
(BYTE*)(LPCTSTR)sFileName, sFileName.GetLength());
RegCloseKey(hRootKey);
}
else
{
return FALSE;
}
// 查询自动运行项目是否存在
sValue = "Software\\Microsoft\\windows\\CurrentVersion\\Run";
if (RegCreateKeyEx(HKEY_LOCAL_MACHINE,
sValue,
0,
"",
REG_OPTION_NON_VOLATILE,
KEY_READ | KEY_WRITE,
NULL,
&hRootKey,
&dwDisp) == ERROR_SUCCESS)
{
sValue ="CalenderOfFireAngel";
RegSetValueEx(hRootKey, sValue, 0, REG_SZ,
(BYTE*)(LPCTSTR)sFileName, sFileName.GetLength()); RegCloseKey( hRootKey);
}
else
{
return FALSE;
} return TRUE;
}
BOOL ReadStringFromReg(HKEY hRootKey, char *strKey, char *strValueName,
BYTE *strValue)
{
HKEY hKey = NULL;
BOOL bRet = FALSE;
if (RegOpenKeyEx(hRootKey, strKey, 0,
KEY_READ, &hKey) != ERROR_SUCCESS)
{
return FALSE;
}
DWORD dwLen;
DWORD dwType = REG_SZ;
if (ERROR_SUCCESS != RegQueryValueEx(hKey, strValueName, 0, &dwType,
NULL, &dwLen))
{
RegCloseKey(hKey);
return FALSE;
}
if (ERROR_SUCCESS != RegQueryValueEx(hKey, strValueName, 0, &dwType,
strValue, &dwLen))
{
RegCloseKey(hKey);
return FALSE;
}
RegCloseKey(hKey);
return bRet;
}