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

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

?? nwconnectionsettings.cpp

?? 更改TCP/IP設(shè)置的源代碼
?? CPP
字號(hào):
//
//					8-may-2000 GBO
//					gert.boddaert@advalvas.be
// =================================================================
// DISCLAIMER
// =================================================================

/*

This software is provided "as is" and any express or implied
warranties, including, but not limited to, the implied warranties of
merchantibility and fitness for a particular purpose are disclaimed.
In no event shall the author be liable for any
direct, indirect, incidental, special, exemplary, or consequential
damages (including, but not limited to, procurement of substitute
goods or services; loss of use, data, or profits; or business
interruption) however caused and on any theory of liability,
whether in contract, strict liability, or tort (including negligence
or otherwise) arising in any way out of the use of this software,
even if advised of the possibility of such damage.

*/

// NWConnectionSettings.cpp: implementation of the NWConnectionSettings class.
//
//////////////////////////////////////////////////////////////////////

#include <windows.h>
#include <tchar.h>
#include <crtdbg.h>
#include "NWConnectionSettings.h"

// Code based on CodeGuru Article "Change IP Address and HostName of NT machine" - Massimo Negroni
// Code based on MSDN Article Q194407
// Code based on CodeProject Article "Registry API Wrapper" - Len Holgate

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

#define STRINGBUFSIZE 512

NWConnectionSettings::NWConnectionSettings() : myDhcpServiceKey(NULL), 
								myNetworkCardKey1(NULL),
								myTcpIpNC1Key(NULL),
								myTcpIpServiceKey(NULL),
								myComputerKey(NULL)
{
	p_myServiceName = NULL;
	p_myIPAddress = NULL;
	p_mySubNetMask = NULL;
	p_myComputerName = NULL;
	p_myDefaultGateway = NULL;
	p_myHostName = NULL;
	p_myRemoteComputerName = NULL;
	my_dwDhcpServiceStart = 0;
	my_dwTCPIP_EnableDhcp = 0;
}

NWConnectionSettings::~NWConnectionSettings()
{
	DeleteObjects();
}

void NWConnectionSettings::DeleteObjects()
{
	my_dwDhcpServiceStart = 0;
	my_dwTCPIP_EnableDhcp = 0;
	myDhcpServiceKey = CRegistryKey(NULL); // close key!
	myNetworkCardKey1 = CRegistryKey(NULL); // close key!
	myTcpIpNC1Key = CRegistryKey(NULL); // close key!
	myTcpIpServiceKey = CRegistryKey(NULL); // close key!
	if (p_myServiceName != NULL)
	{
		free(p_myServiceName);
		p_myServiceName = NULL;
	}
	if (p_myIPAddress != NULL)
	{
		delete [] p_myIPAddress;
		p_myIPAddress = NULL;
	}
	if (p_mySubNetMask != NULL)
	{
		delete [] p_mySubNetMask;
		p_mySubNetMask = NULL;
	}
	if (p_myDefaultGateway != NULL)
	{
		delete [] p_myDefaultGateway;
		p_myDefaultGateway = NULL;
	}
	if (p_myHostName != NULL)
	{
		free(p_myHostName);
		p_myHostName = NULL;
	}
	if (p_myRemoteComputerName != NULL)
	{
		free(p_myRemoteComputerName);
		p_myRemoteComputerName = NULL;
	}
	if (p_myComputerName != NULL)
	{
		delete [] p_myComputerName;
		p_myComputerName = NULL;
	}
}

bool NWConnectionSettings::Connect(const char* strComputerName)
{
	DeleteObjects();
	if (strComputerName == NULL)
	{
		p_myComputerName = NULL;
	}
	else
	{
		unsigned int length = strlen(strComputerName)+1;
		p_myComputerName = new char[length];
		::ZeroMemory(p_myComputerName, length);
		strcpy(p_myComputerName, strComputerName);
	}
	bool bAnswer = false;
	// Retrieve DHCP Service Start Value
	try
	{
		myDhcpServiceKey = CRegistryKey(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\Services\\DHCP"), KEY_ALL_ACCESS, p_myComputerName);
		bAnswer = myDhcpServiceKey.QueryValue( _T("Start"), my_dwDhcpServiceStart);
		if (!bAnswer)
		{
			_ASSERT(NULL);
			return bAnswer;
		}
		myNetworkCardKey1 = CRegistryKey(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards\\1"), KEY_ALL_ACCESS, p_myComputerName);
		bAnswer = myNetworkCardKey1.QueryValue( _T("ServiceName"), (LPCTSTR*) &p_myServiceName);
		if (!bAnswer)
		{
			_ASSERT(NULL);
			p_myServiceName = NULL;
			return bAnswer;
		}
		// retrieve network card Enable DHCP value
		char strService[MAX_PATH + 1];
		::ZeroMemory(strService, MAX_PATH+1);
		strcpy(strService, "SYSTEM\\CurrentControlSet\\Services\\");
		strcat(strService, p_myServiceName);
		strcat(strService, "\\Parameters\\TCPIP");
		myTcpIpNC1Key = CRegistryKey(HKEY_LOCAL_MACHINE, _T(strService), KEY_ALL_ACCESS, p_myComputerName);
		bAnswer = myTcpIpNC1Key.QueryValue( _T("EnableDHCP"), my_dwTCPIP_EnableDhcp);
		if (!bAnswer)
		{
			_ASSERT(NULL);
			return bAnswer;
		}
		// retrieve network card tcpip address value
		DWORD Type = 0;
		p_myIPAddress = new char[STRINGBUFSIZE];
		DWORD cbData = STRINGBUFSIZE;
		LONG RESULT = ::RegQueryValueEx( myTcpIpNC1Key, // handle of key to query 
											_T("IPAddress"), // address of name of value to query 
											NULL, // reserved 
											&Type, // address of buffer for value type 
											(BYTE*) p_myIPAddress, // address of data buffer 
											&cbData // address of data buffer size 
											); 
 		if (RESULT == ERROR_SUCCESS && Type == REG_MULTI_SZ)
		{
			// success!
			bAnswer = true;
		}
		else
		{
			_ASSERT(NULL);
			delete [] p_myIPAddress;
			p_myIPAddress = NULL;
			bAnswer = false;
			return bAnswer;
		}
		// retrieve network card tcpip subnetmask value
		Type = 0;
		p_mySubNetMask = new char[STRINGBUFSIZE];
		cbData = STRINGBUFSIZE;
		RESULT = ::RegQueryValueEx( myTcpIpNC1Key, // handle of key to query 
											_T("SubnetMask"), // address of name of value to query 
											NULL, // reserved 
											&Type, // address of buffer for value type 
											(BYTE*) p_mySubNetMask, // address of data buffer 
											&cbData // address of data buffer size 
											); 
 		if (RESULT == ERROR_SUCCESS && Type == REG_MULTI_SZ)
		{
			// success!
			bAnswer = true;
		}
		else
		{
			_ASSERT(NULL);
			delete [] p_mySubNetMask;
			p_mySubNetMask = NULL;
			bAnswer = false;
			return bAnswer;
		}
		Type = 0;
		p_myDefaultGateway = new char[STRINGBUFSIZE];
		cbData = STRINGBUFSIZE;
		RESULT = ::RegQueryValueEx( myTcpIpNC1Key, // handle of key to query 
											_T("DefaultGateway"), // address of name of value to query 
											NULL, // reserved 
											&Type, // address of buffer for value type 
											(BYTE*) p_myDefaultGateway, // address of data buffer 
											&cbData // address of data buffer size 
											); 
 		if (RESULT == ERROR_SUCCESS && Type == REG_MULTI_SZ)
		{
			// success!
			bAnswer = true;
		}
		else
		{
			_ASSERT(NULL);
			delete [] p_myDefaultGateway;
			p_myDefaultGateway = NULL;
			bAnswer = false;
			return bAnswer;
		}
		myTcpIpServiceKey = CRegistryKey(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\Services\\TcpIp\\Parameters"), KEY_ALL_ACCESS, p_myComputerName);
		bAnswer = myTcpIpServiceKey.QueryValue( _T("HostName"), (LPCTSTR*) &p_myHostName);
		if (!bAnswer)
		{
			_ASSERT(NULL);
			p_myHostName = NULL;
			return bAnswer;
		}
		myComputerKey = CRegistryKey(HKEY_LOCAL_MACHINE, _T("SYSTEM\\CurrentControlSet\\Control\\ComputerName\\ComputerName"), KEY_ALL_ACCESS, p_myComputerName);
		bAnswer = myComputerKey.QueryValue( _T("ComputerName"), (LPCTSTR*) &p_myRemoteComputerName);
		if (!bAnswer)
		{
			_ASSERT(NULL);
			p_myRemoteComputerName = NULL;
			return bAnswer;
		}
	}
	catch (CRegistryKey::Exception &e)
	{
		e.MessageBox();
		DeleteObjects();
		return bAnswer;
	}
}

void NWConnectionSettings::Close()
{
	DeleteObjects();
}

char* NWConnectionSettings::GetName_NC1()
{
	return p_myServiceName;
}

DWORD NWConnectionSettings::GetDHCPServiceStartValue()
{
	return my_dwDhcpServiceStart;
}

bool NWConnectionSettings::SetDHCPServiceStartValue(DWORD dhcp)
{
	bool bAnswer = false;
	// Retrieve DHCP Service Start Value
	try
	{
		myDhcpServiceKey.SetValue( _T("Start"), dhcp);
		my_dwDhcpServiceStart = dhcp;
		bAnswer = true;
	}
	catch (CRegistryKey::Exception &e)
	{
		e.MessageBox();
	}
	return bAnswer;
}

DWORD NWConnectionSettings::GetEnableDHCP_NC1()
{
	return my_dwTCPIP_EnableDhcp;
}

bool NWConnectionSettings::SetEnableDHCP_NC1(DWORD dhcpvalue)
{
	bool bAnswer = false;
	if (p_myServiceName == NULL)
	{
		return bAnswer;
	}
	try
	{
		myTcpIpNC1Key.SetValue( _T("EnableDHCP"), dhcpvalue);
		my_dwTCPIP_EnableDhcp = dhcpvalue;
		bAnswer = true;
	}
	catch (CRegistryKey::Exception &e)
	{
		e.MessageBox();
	}
	return bAnswer;
}

char* NWConnectionSettings::GetTcpIpAddress_NC1(void)
{
	return p_myIPAddress;
}

bool NWConnectionSettings::SetTcpIpAddress_NC1(const char* tcpipaddress)
{
	bool bAnswer = false;
	if (p_myServiceName == NULL || tcpipaddress == NULL)
	{
		return bAnswer;
	}
	unsigned int length = strlen(tcpipaddress) + 2; // we need 2 null terminating
	char* temp = new char[length];
	::ZeroMemory(temp, length);
	strcpy(temp, tcpipaddress);
	DWORD Type = REG_MULTI_SZ;
	LONG RESULT = ::RegSetValueEx( myTcpIpNC1Key, // handle of key to set value for 
									_T("IPAddress"), // address of value to set 
									NULL, // reserved 
									Type, // flag for value type
									(CONST BYTE*) temp, // address of value data 
									length); 
 	if (RESULT == ERROR_SUCCESS )
	{
		// success!
		if (p_myIPAddress != NULL)
		{
			delete [] p_myIPAddress;
			p_myIPAddress = NULL;
		}
		p_myIPAddress = new char[length+1];
		::ZeroMemory(p_myIPAddress, length+1);
		strcpy(p_myIPAddress, tcpipaddress);
		bAnswer = true;
	}
	else
	{
		_ASSERT(NULL);
		delete [] p_myIPAddress;
		p_myIPAddress = NULL;
		bAnswer = false;
	}
	delete [] temp;
	return bAnswer;
}

char* NWConnectionSettings::GetTcpIpSubnetMask_NC1(void)
{
	return p_mySubNetMask;
}

bool NWConnectionSettings::SetTcpIpSubnetMask_NC1(const char* subnetmask)
{
	bool bAnswer = false;
	if (p_myServiceName == NULL || subnetmask == NULL)
	{
		return bAnswer;
	}
	unsigned int length = strlen(subnetmask) + 2; // we need 2 null terminating
	char* temp = new char[length];
	::ZeroMemory(temp, length);
	strcpy(temp, subnetmask);
	DWORD Type = REG_MULTI_SZ;
	LONG RESULT = ::RegSetValueEx( myTcpIpNC1Key, // handle of key to set value for 
									_T("SubnetMask"), // address of value to set 
									NULL, // reserved 
									Type, // flag for value type
									(CONST BYTE*) temp, // address of value data 
									length); 
 	if (RESULT == ERROR_SUCCESS )
	{
		// success!
		if (p_mySubNetMask != NULL)
		{
			delete [] p_mySubNetMask;
			p_mySubNetMask = NULL;
		}
		p_mySubNetMask = new char[length+1];
		::ZeroMemory(p_mySubNetMask, length+1);
		strcpy(p_mySubNetMask, subnetmask);
		bAnswer = true;
	}
	else
	{
		_ASSERT(NULL);
		delete [] p_mySubNetMask;
		p_mySubNetMask = NULL;
		bAnswer = false;
	}
	delete [] temp;
	return bAnswer;
}

char* NWConnectionSettings::GetDefaultGateway_NC1(void)
{
	return p_myDefaultGateway;
}

bool NWConnectionSettings::SetDefaultGateway_NC1(const char* defaultgateway)
{
	bool bAnswer = false;
	if (p_myServiceName == NULL || defaultgateway == NULL)
	{
		return bAnswer;
	}
	unsigned int length = strlen(defaultgateway) + 2; // we need 2 null terminating
	char* temp = new char[length];
	::ZeroMemory(temp, length);
	strcpy(temp, defaultgateway);
	DWORD Type = REG_MULTI_SZ;
	LONG RESULT = ::RegSetValueEx( myTcpIpNC1Key, // handle of key to set value for 
									_T("DefaultGateway"), // address of value to set 
									NULL, // reserved 
									Type, // flag for value type
									(CONST BYTE*) temp, // address of value data 
									length); 
 	if (RESULT == ERROR_SUCCESS )
	{
		// success!
		if (p_myDefaultGateway != NULL)
		{
			delete [] p_myDefaultGateway;
			p_myDefaultGateway = NULL;
		}
		p_myDefaultGateway = new char[length+1];
		::ZeroMemory(p_myDefaultGateway, length+1);
		strcpy(p_myDefaultGateway, defaultgateway);
		bAnswer = true;
	}
	else
	{
		_ASSERT(NULL);
		delete [] p_myDefaultGateway;
		p_myDefaultGateway = NULL;
		bAnswer = false;
	}
	delete [] temp;
	return bAnswer;
}

char* NWConnectionSettings::GetHostName(void)
{
	return p_myHostName;
}

bool NWConnectionSettings::SetHostName(const char* hostname)
{
	bool bAnswer = false;
	if (hostname == NULL)
	{
		return bAnswer;
	}
	try
	{
		myTcpIpServiceKey.SetValue( _T("HostName"), (LPCTSTR) hostname);
		bAnswer = true;
	}
	catch (CRegistryKey::Exception &e)
	{
		e.MessageBox();
	}
	if (!bAnswer)
	{
		_ASSERT(NULL);
		free(p_myHostName);
		p_myHostName = NULL;
		bAnswer = false;
	}
 	else
	{
		// success!
		if (p_myHostName != NULL)
		{
			free(p_myHostName);
			p_myHostName = NULL;
		}
		unsigned int length = strlen(hostname);
		p_myHostName = (char*) malloc(length+1);
		::ZeroMemory(p_myHostName, length+1);
		strcpy(p_myHostName, hostname);
		bAnswer = true;
	}
	return bAnswer;
}

char* NWConnectionSettings::GetComputerName(void)
{
	return p_myRemoteComputerName;
}

bool NWConnectionSettings::SetComputerName(const char* computername)
{
	bool bAnswer = false;
	if (computername == NULL)
	{
		return bAnswer;
	}
	try
	{
		myComputerKey.SetValue( _T("ComputerName"), (LPCTSTR) computername);
		bAnswer = true;
	}
	catch (CRegistryKey::Exception &e)
	{
		e.MessageBox();
	}
 	if (!bAnswer)
	{
		_ASSERT(NULL);
		free(p_myRemoteComputerName);
		p_myRemoteComputerName = NULL;
		bAnswer = false;
	}
	else
	{
		// success!
		if (p_myRemoteComputerName != NULL)
		{
			free(p_myRemoteComputerName);
			p_myRemoteComputerName = NULL;
		}
		unsigned int length = strlen(computername);
		p_myRemoteComputerName = (char*) malloc(length+1);
		::ZeroMemory(p_myRemoteComputerName, length+1);
		strcpy(p_myRemoteComputerName, computername);
		bAnswer = true;
	}
	return bAnswer;
}

char* NWConnectionSettings::GetConnectedComputerName()
{
	return p_myComputerName;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一级在线播放| 日韩福利视频导航| 欧美极品另类videosde| 久久久综合激的五月天| 久久久精品影视| 久久精品一区二区三区不卡牛牛| 精品国产91亚洲一区二区三区婷婷| 欧美一区二区三区四区高清| 日韩欧美国产综合| 欧美大片一区二区三区| 久久久午夜精品| 国产日韩精品一区| 国产精品久久久久天堂| 亚洲视频资源在线| 亚洲一区在线观看免费观看电影高清| 亚洲精品成人a在线观看| 亚洲成人免费在线| 久久国产精品色婷婷| 国产一区二区在线影院| 成人亚洲一区二区一| av一二三不卡影片| 在线观看欧美黄色| 在线播放视频一区| 久久九九久精品国产免费直播| 欧美一区二区三区在线视频| 欧美一区午夜视频在线观看| 欧美精品一区二区精品网| 国产欧美一区视频| 一区二区三国产精华液| 三级久久三级久久久| 国产精品一区二区黑丝| 色婷婷久久久综合中文字幕| 欧美男男青年gay1069videost| 日韩欧美在线观看一区二区三区| 久久精子c满五个校花| 亚洲另类在线制服丝袜| 丝袜a∨在线一区二区三区不卡| 久久电影网站中文字幕| 99综合影院在线| 欧美高清视频不卡网| 国产亚洲欧美日韩日本| 一区二区三区资源| 美女视频黄频大全不卡视频在线播放| 国产91在线观看| 欧美日韩在线综合| 国产欧美中文在线| 午夜电影网一区| 国产成人日日夜夜| 欧美日韩国产精品成人| 国产人成亚洲第一网站在线播放 | 亚洲婷婷国产精品电影人久久| 国产成人精品亚洲777人妖 | 国产精品不卡在线观看| 日韩综合小视频| 成人小视频在线观看| 欧美日本一区二区| 国产精品久久久久久福利一牛影视| 午夜国产不卡在线观看视频| 成人av电影免费观看| 日韩欧美一级二级三级久久久| 成人免费在线视频观看| 另类小说一区二区三区| 91国偷自产一区二区三区观看| 久久久国产一区二区三区四区小说| 亚洲高清三级视频| 成人av小说网| 欧美xxxx在线观看| 日韩精品亚洲一区二区三区免费| a4yy欧美一区二区三区| 日韩欧美视频一区| 午夜免费久久看| 日本精品视频一区二区三区| 国产午夜精品一区二区三区四区| 日本午夜精品一区二区三区电影 | 日韩精品专区在线影院重磅| 亚洲欧美另类久久久精品| 国产精品18久久久久久久久| 欧美另类高清zo欧美| 亚洲另类一区二区| 白白色亚洲国产精品| 久久免费看少妇高潮| 日本一不卡视频| 欧美色网一区二区| 亚洲人午夜精品天堂一二香蕉| 成人免费视频视频| 国产视频一区二区三区在线观看| 久久精品噜噜噜成人av农村| 欧美日韩一区不卡| 亚洲综合激情另类小说区| a级精品国产片在线观看| 国产无人区一区二区三区| 激情综合亚洲精品| 日韩一区二区影院| 日韩高清一区二区| 欧美老女人第四色| 午夜精品视频在线观看| 在线亚洲免费视频| 亚洲九九爱视频| 色系网站成人免费| 亚洲日本青草视频在线怡红院| 成人精品鲁一区一区二区| 欧美激情一二三区| 成人高清视频免费观看| 日本一区二区三区四区在线视频| 国产乱一区二区| 久久久av毛片精品| 国产精品99久久久久久久女警| 久久久久久久久一| 国产成人免费视频网站| 国产欧美视频一区二区| 成人永久aaa| 自拍偷自拍亚洲精品播放| 97久久超碰国产精品| 亚洲乱码国产乱码精品精的特点 | 岛国一区二区三区| 日韩美女视频一区二区| 91片在线免费观看| 亚洲综合久久久久| 欧美日韩一本到| 免费观看日韩av| 国产农村妇女毛片精品久久麻豆| 成人美女在线观看| 亚洲精品精品亚洲| 精品视频在线免费看| 免播放器亚洲一区| 精品国产伦理网| 国产成人无遮挡在线视频| |精品福利一区二区三区| 91麻豆免费观看| 亚洲一区二区三区四区在线| 制服丝袜亚洲播放| 国产在线视频一区二区三区| 国产女同互慰高潮91漫画| 91免费版在线| 日韩avvvv在线播放| 久久亚洲二区三区| 91在线观看成人| 视频一区在线播放| 国产女人18毛片水真多成人如厕| 色欧美日韩亚洲| 奇米影视一区二区三区| 国产精品丝袜久久久久久app| 99久久99久久免费精品蜜臀| 亚洲v日本v欧美v久久精品| 精品日本一线二线三线不卡| 白白色亚洲国产精品| 舔着乳尖日韩一区| 日本一区二区三区视频视频| 欧美日韩一级片在线观看| 国产一区二区三区蝌蚪| 夜夜嗨av一区二区三区四季av| 日韩欧美电影在线| 国产盗摄一区二区| 三级在线观看一区二区| 国产精品久久一卡二卡| 9191成人精品久久| 岛国av在线一区| 七七婷婷婷婷精品国产| 日韩一区在线播放| 欧美一二区视频| 91色乱码一区二区三区| 久久精品72免费观看| 亚洲综合在线免费观看| 欧美精品一区男女天堂| 欧美性猛交xxxx乱大交退制版| 精品一区二区在线看| 亚洲国产美女搞黄色| 中文字幕二三区不卡| 91麻豆精品久久久久蜜臀| 91丨九色porny丨蝌蚪| 国产美女在线观看一区| 亚洲成av人在线观看| ●精品国产综合乱码久久久久| 精品国产欧美一区二区| 欧美日韩精品一区二区天天拍小说| 成人av电影免费在线播放| 激情亚洲综合在线| 日韩不卡一区二区| 亚洲综合在线视频| 国产精品成人一区二区艾草 | 久久99精品国产麻豆婷婷洗澡| 一区二区三区精密机械公司| 日本一区二区三区电影| 日韩女优av电影在线观看| 欧美裸体一区二区三区| 91片黄在线观看| 99久免费精品视频在线观看| 国产一区二区电影| 美女视频黄 久久| 日本美女一区二区三区视频| 亚洲观看高清完整版在线观看| 亚洲色图欧洲色图| 国产精品久久久久9999吃药| 久久久久国产免费免费| 精品国产麻豆免费人成网站| 日韩欧美一二三区| 91精品国产色综合久久久蜜香臀| 欧美亚洲尤物久久| 色爱区综合激月婷婷| 91丨porny丨蝌蚪视频|