亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? regedit.cpp

?? QQ自動登陸器, 同時支持TM, 利用QQ可以從命令行接收參數(shù)登陸的特點制做, 源碼中有QQ密碼加密的完整算法, 開發(fā)環(huán)境, VC++6.0
?? CPP
字號:

/*
	Copyright 2006 - 2008
	ZhangLuduo <zhangluduo@msn.com>
	All Rights Reserved.
							
	注冊表操作封裝類

	作者	- 張魯奪(zhangluduo)
	MSN		- zhangluduo@msn.com
	QQ群	- 34064264

	為所有愛我的人和我愛的人努力!
*/

#include "stdafx.h"
#include "Regedit.h"

Regedit::Regedit()
{
	m_hKey = NULL;
}

Regedit::~Regedit()
{
	if(m_hKey != NULL) 
		RegCloseKey(m_hKey);
}

bool Regedit::Open(HKEY RootItem, const char* SubItem, bool bCreate)
{
	Close();
	if(RegOpenKey(RootItem, SubItem, &m_hKey) == ERROR_SUCCESS) 
		return true;
	if(bCreate)
	{
		if(RegCreateKey(RootItem, SubItem, &m_hKey) == ERROR_SUCCESS) 
			return true;
	}
	return false;
}

void Regedit::Close()
{
	if(m_hKey != NULL)
	{
		if(RegCloseKey(m_hKey) == ERROR_SUCCESS) 
			m_hKey = NULL;	
	}
}

bool Regedit::SetValue(	/* in */ HKEY					RootItem, 
						/* in */ const char*			SubItem, 
						/* in */ unsigned long			ValueType, 
						/* in */ const char*			KeyName, 
						/* in */ const unsigned char*	Data, 
						/* in */ unsigned long			DataLen)
{
	Close();
	if(!Open(RootItem, SubItem, true))
	{
		Close();
		return false;
	}

	bool bValue = RegSetValueEx(m_hKey, KeyName, 0, ValueType, Data, DataLen) == ERROR_SUCCESS ? true : false;

	Close();

	return bValue;
}

ValueBuf Regedit::ReadValue(/* in  */ HKEY				RootItem, 
							/* in  */ const char*		SubItem, 
							/* in  */ const char*		KeyName, 
							/* out */ unsigned long*	DataType, 
							/* out */ unsigned long*	DataLen)
{
	Close();
	if(!Open(RootItem, SubItem, false))
	{
		Close();
		return "";
	}

	//通過DataLen查詢數(shù)據(jù)長度
	if(RegQueryValueEx(m_hKey, KeyName, 0, DataType, 0, DataLen) != ERROR_SUCCESS)
	{
		Close();
		return "";
	}

	//分配數(shù)據(jù)緩沖區(qū)
	unsigned char* DataBuf = new unsigned char[*DataLen];
	memset(DataBuf, 0, *DataLen);
 
	// 查詢值
	if(RegQueryValueEx(m_hKey, KeyName, 0, DataType, DataBuf, DataLen) != ERROR_SUCCESS)
	{
		Close();
		delete[] DataBuf;
		return "";	
	}

	// 如果值類型為REG_SZ(字符串型), 它的實際長度包含了一個'\0', 故此減一
	if(*DataType == REG_SZ && (*DataLen) > 0)
		(*DataLen)-- ;

	/** 此處將DataBuf中的數(shù)據(jù)傳送到strRet中, 
		如果使用賦值號直接賦值的話, 一旦DataBuf中含有'\0', 
		那么在'\0'后的數(shù)據(jù)將被截斷
	*/
	string strRet = "";
	for(int i = 0 ; i < *DataLen; i++)
		strRet += DataBuf[i];

	Close();
	delete[] DataBuf;
	return strRet;
}

bool Regedit::DeleteKey(/* in */ HKEY RootItem, /* in */ const char* SubItem, /* in */ const char* KeyName)
{
	Close(); 
	if(!Open(RootItem, SubItem, false)) 
	{
		Close();
		return false;
	}

	bool bRet = RegDeleteValue(m_hKey, KeyName) == ERROR_SUCCESS ? true : false;

	Close(); 

	return bRet;
}

bool Regedit::DeleteKey(/* in */ HKEY RootItem, /* in */ const char* SubItem)
{
	Close(); 
	if(!Open(RootItem, SubItem, false)) 
	{
		Close();
		return false;
	}

	unsigned long n;
	if(RegQueryInfoKey(m_hKey, 0, 0, 0, 0, 0, 0, &n, 0, 0, 0, 0) != ERROR_SUCCESS)
	{
		Close();

		CString str;
		str.Format("%d", GetLastError());
		AfxMessageBox(str);
		return false;
	}

	char Buf[MAX_PATH]	= { 0 };
	unsigned long Len	= MAX_PATH;
	while(n)
	{
		n--;
		memset(Buf, 0, MAX_PATH);
		Len = MAX_PATH;
		if(RegEnumValue(m_hKey, 0, Buf, &Len, 0, 0, 0, 0) != ERROR_SUCCESS)
		{
			Close();
			return false;
		}
		if(RegDeleteValue(m_hKey, Buf) != ERROR_SUCCESS)
		{
			Close();
			return false;
		}
	}

	Close();
	return true;
}

vector<string> Regedit::EnumKey (/* in */ HKEY RootItem, /* in */ const char* SubItem)
{
	Close(); 
	if(!Open(RootItem, SubItem, false)) 
	{
		Close();
		return 0;
	}

	unsigned long n;
	if(RegQueryInfoKey(m_hKey, 0, 0, 0, 0, 0, 0, &n, 0, 0, 0, 0) != ERROR_SUCCESS)
	{
		Close();
		return 0;
	}

	char Buf[MAX_PATH]	= { 0 };
	unsigned long Len	= MAX_PATH;
	vector<string> KeyNames;
	for(int i = 0 ; i < n; i++)
	{
		memset(Buf, 0, MAX_PATH);
		Len = MAX_PATH;
		if(RegEnumValue(m_hKey, i, Buf, &Len, 0, 0, 0, 0) == ERROR_SUCCESS)
		{
			KeyNames.push_back(Buf);
		}
	}

	Close();
	return KeyNames;
}

// 遞歸實現(xiàn)
bool Regedit::DeleteItem(/* in */ HKEY RootItem, /* in */ const char* SubItem)
{
	Close(); 
	if(!Open(RootItem, SubItem, false)) 
	{
		Close();
		return false;
	}

	char Buf[MAX_PATH]	= { 0 };
	while(RegEnumKey(m_hKey, 0, Buf, MAX_PATH) == ERROR_SUCCESS)
	{
		string strLink = SubItem;
		if(strLink.substr(strLink.length() - 1, 1) != "\\")
			strLink += "\\";
		strLink += Buf;
		if(	!DeleteItem(RootItem, strLink.c_str()) || !DeleteItem(RootItem, SubItem) )
		{
			Close();
			return false;
		}
	}
	bool bRet = ::RegDeleteKey(m_hKey, "") == ERROR_SUCCESS ? true : false;
	Close();
	return true;
}

/*
void Regedit::test()
{
//	if(DeleteItem(HKEY_LOCAL_MACHINE, "SOFTWARE\\a"))
//		AfxMessageBox("OK");
//	--------------------------------------------------
//	DWORD DataType	= 0;
//	DWORD DataLen	= 0;
//	ValueBuf Value = ReadValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\a", "hello", &DataType, &DataLen);
//
//	if(DataType == REG_DWORD && DataLen != 0)
//	{
//		CString strTmp, strResult;
//		for(int i = 0 ; i < DataLen ; i++)
//		{
//			strTmp.Format("%X", Value[i]);
//			strResult += strTmp;
//		}
//		AfxMessageBox(strResult);
//	}
//	else
//	{
//		AfxMessageBox("讀取的值不是REG_DWORD類型");
//	}
}*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人在线观看| 精品中文字幕一区二区小辣椒| 亚洲福利一区二区| 国产精品中文字幕日韩精品 | 香蕉成人啪国产精品视频综合网| 久久99国产精品尤物| 欧美视频一区二区在线观看| 国产日韩精品视频一区| 亚洲成人av一区二区| 成人国产精品免费| 精品国产一区久久| 日韩国产欧美在线视频| 91激情在线视频| 国产精品久久久久一区| 国产a精品视频| 久久精品视频在线免费观看| 免费成人在线播放| 欧美精品一卡两卡| 亚洲午夜私人影院| 欧美亚洲日本国产| 亚洲国产你懂的| 欧美日韩国产影片| 亚洲午夜电影在线观看| 91久久精品网| 亚洲成av人片在www色猫咪| 欧美一区二区三区影视| 亚洲bt欧美bt精品777| 欧美日韩你懂得| 污片在线观看一区二区| 欧美精品xxxxbbbb| 美女高潮久久久| 欧美一级电影网站| 日韩精品免费专区| 3d成人h动漫网站入口| 日本成人在线网站| 欧美成人aa大片| 国产精品亚洲成人| 成人免费在线播放视频| 91免费看`日韩一区二区| 亚洲伊人伊色伊影伊综合网| 欧美亚州韩日在线看免费版国语版| 亚洲综合无码一区二区| 欧美日韩国产高清一区二区 | 激情五月婷婷综合网| 久久久久久久久久久电影| 夫妻av一区二区| 亚洲欧美一区二区三区久本道91| 91国偷自产一区二区使用方法| 一区二区三区不卡视频在线观看| 欧美三级日韩三级国产三级| 秋霞电影网一区二区| 久久亚洲春色中文字幕久久久| 成人免费精品视频| 偷窥少妇高潮呻吟av久久免费| 日韩一区二区三区精品视频| 国产福利91精品一区二区三区| 亚洲美女免费视频| 日韩欧美一级片| 成人短视频下载| 亚洲成av人片在线观看无码| 久久久.com| 欧美日韩精品一区二区三区蜜桃 | 日本韩国欧美一区二区三区| 五月天中文字幕一区二区| 久久精品一区蜜桃臀影院| 色综合视频一区二区三区高清| 毛片av中文字幕一区二区| 国产精品国产三级国产有无不卡| 欧美日韩电影在线| 国产.欧美.日韩| 全国精品久久少妇| 亚洲人妖av一区二区| 精品国产麻豆免费人成网站| 色综合久久天天综合网| 国产在线麻豆精品观看| 亚洲国产精品一区二区久久| 国产农村妇女精品| 日韩一区二区精品| 欧美主播一区二区三区美女| 国产传媒一区在线| 日本一不卡视频| 亚洲欧美精品午睡沙发| 亚洲欧美国产77777| 精品久久久久香蕉网| 欧美日韩亚洲综合一区 | 麻豆精品在线播放| 一区二区三区视频在线观看| 国产日韩精品一区| 欧美mv日韩mv亚洲| 欧美一区二区三区四区五区| 色狠狠色狠狠综合| 91色.com| 成人久久视频在线观看| 国产自产高清不卡| 久久精品国产秦先生| 日韩国产精品大片| 偷拍一区二区三区四区| 亚洲午夜久久久久久久久电影网 | 免费观看在线色综合| 亚洲第一在线综合网站| 亚洲激情av在线| 亚洲精品高清视频在线观看| 国产精品高潮呻吟| 中文字幕在线一区| 亚洲欧美综合在线精品| 国产三区在线成人av| 欧美精品一区二区三区四区| 欧美一区二区黄| 日韩欧美国产一二三区| 日韩视频中午一区| 欧美电影免费观看高清完整版在线观看 | 欧美人妖巨大在线| 欧美日韩一区二区三区免费看| 日本福利一区二区| 欧美性猛片xxxx免费看久爱| 精品视频一区 二区 三区| 欧美日韩一二三区| 91精品国产日韩91久久久久久| 日韩一区二区视频在线观看| 7777精品伊人久久久大香线蕉最新版 | 欧美探花视频资源| 宅男在线国产精品| 欧美一区二区三区婷婷月色| 日韩美女视频一区二区在线观看| 欧美一区二区三级| ww久久中文字幕| 国产精品午夜免费| 亚洲综合免费观看高清完整版| 亚洲自拍偷拍图区| 天天操天天干天天综合网| 久久成人免费网| 不卡一区二区中文字幕| 欧美色区777第一页| 欧美一二三四区在线| 久久久激情视频| 亚洲乱码日产精品bd| 日韩成人一区二区三区在线观看| 韩国av一区二区三区在线观看| 国产精品白丝av| 在线观看一区二区视频| 日韩一级免费观看| 日本中文字幕不卡| 国产精品一二二区| 在线观看视频一区二区欧美日韩| 4438x亚洲最大成人网| 国产欧美中文在线| 亚洲第一福利一区| 国产91精品欧美| 欧美日韩精品高清| 中文字幕成人av| 日韩av中文字幕一区二区三区| 成人一区二区三区在线观看 | 国产午夜久久久久| 亚洲在线视频一区| 国产一区二区三区电影在线观看| 日本高清免费不卡视频| 久久亚洲精品小早川怜子| 亚洲一区二区三区激情| 高清不卡一区二区| 色婷婷av一区二区三区gif| 人人爽香蕉精品| 99v久久综合狠狠综合久久| 日韩欧美在线不卡| 亚洲美女区一区| 风间由美一区二区三区在线观看| 欧美日韩国产高清一区| 亚洲欧美视频在线观看视频| 国产精品亚洲一区二区三区妖精| 欧美日韩高清一区二区三区| 一区精品在线播放| 国产一区二区不卡在线 | 偷偷要91色婷婷| 99精品视频一区二区三区| 久久久久久99久久久精品网站| 亚洲成人综合网站| 日本久久一区二区三区| 国产精品女上位| 国产久卡久卡久卡久卡视频精品| 6080亚洲精品一区二区| 一区二区三区在线影院| 成人av动漫网站| 日本一区二区免费在线| 国产精品中文有码| www国产成人| 国内国产精品久久| 欧美变态口味重另类| 麻豆国产精品视频| 69av一区二区三区| 日韩电影网1区2区| 91麻豆精品国产91久久久久久久久 | 一区二区理论电影在线观看| 成人国产视频在线观看| 久久在线观看免费| 韩国成人福利片在线播放| 精品久久久久久久人人人人传媒| 视频一区二区中文字幕| 欧美精品久久久久久久久老牛影院| 亚洲第一电影网| 欧美疯狂做受xxxx富婆| 亚洲成年人网站在线观看|