⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reg.h

📁 数字签名的例子
💻 H
字号:



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Header
#pragma once
#define REG_AppKey				TEXT("Software\\") STR_AppName
#define REG_AppSubKey(x)		REG_AppKey TEXT("\\") TEXT(x)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CReg class
class CReg
{
protected:
	HKEY m_hKey;

public:
	CReg(PCTSTR ptzKey = REG_AppKey, HKEY hKey = HKEY_CURRENT_USER, REGSAM regSam = KEY_ALL_ACCESS)
	{
		RegCreateKeyEx(hKey, ptzKey, 0, NULL, 0, regSam, NULL, &m_hKey, NULL);
	}

	virtual ~CReg()
	{
		RegCloseKey(m_hKey);
	}

	operator HKEY()
	{
		return m_hKey;
	}

public:
	INT GetInt(PCTSTR ptzName, INT iDef = 0)
	{
		DWORD dwSize = sizeof(DWORD);
		RegQueryValueEx(m_hKey, ptzName, NULL, NULL, (PBYTE) &iDef, &dwSize);
		return iDef;
	}

	BOOL SetInt(PCTSTR ptzName, INT iVal = 0)
	{
		return RegSetValueEx(m_hKey, ptzName, 0, REG_DWORD, (PBYTE) &iVal, sizeof(DWORD)) == ERROR_SUCCESS;
	}

	UINT GetStr(PCTSTR ptzName, PTSTR ptzStr, UINT uLen = MAX_PATH, PCTSTR ptzDef = NULL)
	{
		ptzStr[0] = 0;
		uLen = uLen * sizeof(TCHAR);
		if (RegQueryValueEx(m_hKey, ptzName, NULL, NULL, (PBYTE) ptzStr, (PDWORD) &uLen) == ERROR_SUCCESS)
		{
			return (uLen / sizeof(TCHAR)) - 1;
		}
		else if (ptzDef)
		{
			PTSTR p = ptzDef;
			while (*ptzStr++ = *p++);
			return p - ptzDef;
		}
		else
		{
			return 0;
		}
	}

	BOOL SetStr(PCTSTR ptzName = NULL, PCTSTR ptzStr = TEXT(""))
	{
		return RegSetValueEx(m_hKey, ptzName, 0, REG_SZ, (PBYTE) ptzStr, (lstrlen(ptzStr) + 1) * sizeof(TCHAR)) == ERROR_SUCCESS;
	}

	BOOL GetStruct(PCTSTR ptzName, PVOID pvStruct, UINT uSize)
	{
		return RegQueryValueEx(m_hKey, ptzName, NULL, NULL, (PBYTE) pvStruct, (PDWORD) &uSize) == ERROR_SUCCESS;
	}

	BOOL SetStruct(PCTSTR ptzName, PVOID pvStruct, UINT uSize, DWORD dwType = REG_BINARY)
	{
		return RegSetValueEx(m_hKey, ptzName, 0, dwType, (PBYTE) pvStruct, uSize) == ERROR_SUCCESS;
	}

public:
	BOOL DelVal(PCTSTR ptzName = NULL)
	{
		return RegDeleteValue(m_hKey, ptzName) == ERROR_SUCCESS;
	}

	static BOOL DelKey(PCTSTR ptzKey = REG_AppKey, HKEY hKey = HKEY_CURRENT_USER)
	{
		return RegDeleteKey(hKey, ptzKey) == ERROR_SUCCESS;
	}

	BOOL EnumVal(DWORD dwIndex, PTSTR ptzName, PBYTE pbVal, PDWORD pdwSize, PDWORD pdwType = NULL)
	{
		DWORD dwSize = MAX_PATH;
		return RegEnumValue(m_hKey, dwIndex, ptzName, &dwSize, NULL, pdwType, pbVal, pdwSize) == ERROR_SUCCESS;
	}

	BOOL EnumKey(DWORD dwIndex, PTSTR ptzKeyName)
	{
		FILETIME ftTime;
		DWORD dwSize = MAX_PATH;
		return RegEnumKeyEx(m_hKey, dwIndex, ptzKeyName, &dwSize, NULL, NULL, 0, &ftTime) == ERROR_SUCCESS;
	}

public:
	UINT GetSize(PCTSTR ptzName)
	{
		UINT uSize = 0;
		RegQueryValueEx(m_hKey, ptzName, NULL, NULL, NULL, (PDWORD) &uSize);
		return uSize;
	}

	BOOL ExistVal(PCTSTR ptzName)
	{
		UINT uSize;
		return RegQueryValueEx(m_hKey, ptzName, NULL, NULL, NULL, (PDWORD) &uSize) == ERROR_SUCCESS;
	}
};
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -