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

📄 netenvsetting.cpp

📁 1,wince下做的导入注册表的程序.
💻 CPP
字号:
// EnvSetting.cpp: implementation of the CEnvSetting class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "NetEnvSetting.h"

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

CNetEnvSetting::CNetEnvSetting()
{
	memset(NetworkPath, 0, sizeof(TCHAR)*MAX_PATH);
	memset(ServerName, 0, sizeof(TCHAR)*NAME_LENGTH);
	memset(RemoteShared, 0, sizeof(TCHAR)*NAME_LENGTH);
	memset(RemoteUserFolder, 0, sizeof(TCHAR)*NAME_LENGTH);
	memset(NetworkSubFolder, 0, sizeof(TCHAR)*NAME_LENGTH);
	memset(UserName, 0, sizeof(TCHAR)*NAME_LENGTH);
	memset(Password, 0, sizeof(TCHAR)*NAME_LENGTH);
	// For Local
	memset(LocalRamFolder, 0, sizeof(TCHAR)*MAX_PATH);
	memset(LocalPersistRoot, 0, sizeof(TCHAR)*MAX_PATH);
	memset(LocalPersistFolder, 0, sizeof(TCHAR)*MAX_PATH);
	fRemoteShared=FALSE;
	dwWorkInLocal=0;
	
}

CNetEnvSetting::~CNetEnvSetting()
{
	
}
BOOL CNetEnvSetting::GetSettingsFromReg()
{
#define EMBO_USBSCANNER_APP _T("Software\\Embedded-Tech\\RemoteFileControl\\User1")
#define NAME_SERVER_NAME			_T("ServerName")			//="\\\\Embo-ServerTest"
#define NAME_REMOTE_SHARED			_T("RemoteShared")			//="\\Bmp"
#define NAME_REMOTE_USER_FOLDER		_T("RemoteUserFolder")		//="\\user1"
#define NAME_NETWORK_SUBFOLDER		_T("NetworkSubFolder")		//="\\RemoteDir"
#define NAME_LOCAL_RAMFOLDER		_T("LocalRamFolder")		//="\\TempRamDir"
#define NAME_LOCAL_PERSISTROOT		_T("LocalPersistRoot")		//="\\HardDisk"
#define NAME_LOCAL_PERSIST_FOLDER	_T("LocalPersistFolder")	//="\\TempPersistDir"
#define NAME_USERNAME				_T("UserName")				//="wbttest1"
#define NAME_PASSWORD				_T("Password")				//="certificate"
#define NAME_WORK_IN_LOCAL			_T("WorkInLocal")			//="WorkInLocal"
	//DWORD dwData;
	DWORD dwType;
	DWORD cbData=sizeof(TCHAR)*NAME_LENGTH;
	KeyBuffer[0] = TEXT('\0');
	
	StringCchCat( KeyBuffer, KEYBUFFERLENGTH, EMBO_USBSCANNER_APP);
	
	lRetCode = RegOpenKeyEx(
		HKEY_LOCAL_MACHINE,
		KeyBuffer,
		0, KEY_ALL_ACCESS, &hRegKey);
	
	if (lRetCode != ERROR_SUCCESS) 
	{
		return FALSE;
	}
	// Get ServerName
	lRetCode = RegQueryValueEx(
		hRegKey,
		NAME_SERVER_NAME,
		0,
		&dwType, 
		(BYTE *) ServerName,
		&cbData);
	if (lRetCode != ERROR_SUCCESS) 
	{
		return FALSE;
	}
	
	// Get dwWorkInLocal
	cbData=sizeof(TCHAR)*NAME_LENGTH;
	lRetCode = RegQueryValueEx(
		hRegKey,
		NAME_WORK_IN_LOCAL,
		0,
		&dwType, 
		(BYTE *) dwWorkInLocal,
		&cbData);
	if (lRetCode != ERROR_SUCCESS) 
	{
		dwWorkInLocal=0;
	}
	
	// Get RemoteShared
	cbData=sizeof(TCHAR)*NAME_LENGTH;
	lRetCode = RegQueryValueEx(
		hRegKey,
		NAME_REMOTE_SHARED,
		0,
		&dwType, 
		(BYTE *) RemoteShared,
		&cbData);
	if (lRetCode != ERROR_SUCCESS) 
	{
		return FALSE;
	}
	
	// Get RemoteUserFolder
	cbData=sizeof(TCHAR)*NAME_LENGTH;
	lRetCode = RegQueryValueEx(
		hRegKey,
		NAME_REMOTE_USER_FOLDER,
		0,
		&dwType, 
		(BYTE *) RemoteUserFolder,
		&cbData);
	if (lRetCode != ERROR_SUCCESS) 
	{
		return FALSE;
	}
	
	// Get Local NetworkSubFolder
	cbData=sizeof(TCHAR)*NAME_LENGTH;
	lRetCode = RegQueryValueEx(
		hRegKey,
		NAME_NETWORK_SUBFOLDER,
		0,
		&dwType, 
		(BYTE *) NetworkSubFolder,
		&cbData);
	if (lRetCode != ERROR_SUCCESS) 
	{
		return FALSE;
	}
	
	// Get UserName
	cbData=sizeof(TCHAR)*NAME_LENGTH;
	lRetCode = RegQueryValueEx(
		hRegKey,
		NAME_USERNAME,
		0,
		&dwType, 
		(BYTE *) UserName,
		&cbData);
	if (lRetCode != ERROR_SUCCESS) 
	{
		return FALSE;
	}
	
	// Get Password
	cbData=sizeof(TCHAR)*NAME_LENGTH;
	lRetCode = RegQueryValueEx(
		hRegKey,
		NAME_PASSWORD,
		0,
		&dwType, 
		(BYTE *) Password,
		&cbData);
	if (lRetCode != ERROR_SUCCESS) 
	{
		return FALSE;
	}
	
	// Get LocalRamFolder
	cbData=sizeof(TCHAR)*NAME_LENGTH;
	lRetCode = RegQueryValueEx(
		hRegKey,
		NAME_LOCAL_RAMFOLDER,
		0,
		&dwType, 
		(BYTE *) LocalRamFolder,
		&cbData);
	if (lRetCode != ERROR_SUCCESS) 
	{
		return FALSE;
	}
	
	// Get LocalPersistRoot
	cbData=sizeof(TCHAR)*NAME_LENGTH;
	lRetCode = RegQueryValueEx(
		hRegKey,
		NAME_LOCAL_PERSISTROOT,
		0,
		&dwType, 
		(BYTE *) LocalPersistRoot,
		&cbData);
	if (lRetCode != ERROR_SUCCESS) 
	{
		return FALSE;
	}
	
	// Get LocalPersistFolder
	cbData=sizeof(TCHAR)*NAME_LENGTH;
	lRetCode = RegQueryValueEx(
		hRegKey,
		NAME_LOCAL_PERSIST_FOLDER,
		0,
		&dwType, 
		(BYTE *) LocalPersistFolder,
		&cbData);
	if (lRetCode != ERROR_SUCCESS) 
	{
		return FALSE;
	}
	StringCchCat(LocalPersistRoot, MAX_PATH, LocalPersistFolder);
	StringCchCopy(LocalPersistFolder, sizeof(LocalPersistFolder), LocalPersistRoot);
	RegCloseKey(hRegKey);
	return TRUE;
}

/*
函数说明:映射网络文件
参数说明:CsUser:用户名:
CsPass :密码
CsFile:要映射的文件
返回值    TREUE:成功
FALSE:失败
*/
BOOL CNetEnvSetting::MappingNetWork()//CString CsUser,CString CsPass,CString CsRemoteFile,CString CsFile)
{   
//	 WIN32_FIND_DATA SFile;
//	 HANDLE hFind; 
	DWORD kk;
	NETRESOURCEW NetRes;
	// HINSTANCE hLibrary;
	// PFN_WNetAddConnection3W		WNetAddConnection3; 
	// PFN_WNetCancelConnection2W	WNetCancelConnection2;
	memset(NetworkPath, 0, sizeof(NetworkPath)); 
	StringCchCat(NetworkPath, MAX_PATH, _T("\\\\"));
	StringCchCat(NetworkPath, MAX_PATH, ServerName);
	StringCchCat(NetworkPath, MAX_PATH, _T("\\"));
	StringCchCat(NetworkPath, MAX_PATH, RemoteShared);
	memset(&NetRes,0,sizeof(NETRESOURCEW));
	
	NetRes.lpLocalName=NetworkSubFolder;
	NetRes.lpRemoteName=NetworkPath;
	NetRes.dwType=RESOURCETYPE_DISK ;
	NetRes.lpProvider=NULL;
	
	if(wcslen(NetRes.lpLocalName)==0 || 
		wcslen(NetRes.lpRemoteName)==0)
		return FALSE;
	
		/*
		hLibrary=LoadLibrary(TEXT("Coredll.dll"));
		if (!hLibrary)
		{
		RETAILMSG(1,(TEXT("LoadLibrary Coredll.dll Fail!\r\n")));
		return FALSE;
		}
		
		  WNetAddConnection3=(PFN_WNetAddConnection3W)GetProcAddress(hLibrary,TEXT("WNetAddConnection3W")); //?ìè?PortInoˉêyμ??· 
		  if(WNetAddConnection3==(PFN_WNetAddConnection3W)NULL)
		  {
		  RETAILMSG(1,(TEXT("Get Coredll.dll Function WNetAddConnection3W Fail!\r\n")));
		  return FALSE;
		  }
		  else
		  {
		  RETAILMSG(1,(TEXT("Get Coredll.dll Function WNetAddConnection3W Success!\r\n")));
		  }
		  
			WNetCancelConnection2=(PFN_WNetCancelConnection2W)GetProcAddress(hLibrary,L"WNetCancelConnection2W");
			if(WNetCancelConnection2==(PFN_WNetCancelConnection2W)NULL)
			{
			RETAILMSG(1,(TEXT("Get Coredll.dll Function WNetCancelConnection2W Fail!\r\n")));
			return FALSE;
			}
			else
			{
			RETAILMSG(1,(TEXT("Get Coredll.dll Function WNetCancelConnection2W Success!\r\n")));
			}
			
			  MessageBox(0,TEXT("ok1"),TEXT(""),MB_OK);
			  kk=WNetCancelConnection2(NetworkSubFolder,0,TRUE);		//断开网络映射
			  MessageBox(0,TEXT("ok2"),TEXT(""),MB_OK);
			  kk=(*WNetAddConnection3)(NULL,&NetRes,Password,UserName,CONNECT_UPDATE_PROFILE); //连接网络映射
			  MessageBox(0,TEXT("ok3"),TEXT(""),MB_OK);
			  FreeLibrary(hLibrary);
	*/
	
	kk=WNetCancelConnection2(NetworkSubFolder,CONNECT_UPDATE_PROFILE,TRUE);		//断开网络映射 
	kk=WNetAddConnection3(0,&NetRes,Password,UserName, CONNECT_UPDATE_PROFILE); //连接网络映射 
	
	if(kk==NO_ERROR)
	{
		RETAILMSG(1,(TEXT("The network Mapping is succeed!\r\n")));
		// complete NetworkPath
		/*
		memset(NetworkPath, 0, sizeof(NetworkPath));
		
		  hFind=FindFirstFile(L"网络",&SFile);
		  
			if(hFind!=INVALID_HANDLE_VALUE)
			{
			StringCchCat( NetworkPath, MAX_PATH, L"\\网络");
			StringCchCat( NetworkPath, MAX_PATH, L"\\");
			StringCchCat( NetworkPath, MAX_PATH, NetworkSubFolder);
			StringCchCat( NetworkPath, MAX_PATH, RemoteUserFolder);
			fRemoteShared=TRUE;
			}
			FindClose(hFind);
			
			  hFind=FindFirstFile(L"Network",&SFile);
			  if(hFind!=INVALID_HANDLE_VALUE)
			  {
			  StringCchCat( NetworkPath, MAX_PATH, L"\\Network");
			  StringCchCat( NetworkPath, MAX_PATH, L"\\");
			  StringCchCat( NetworkPath, MAX_PATH, NetworkSubFolder);
			  StringCchCat( NetworkPath, MAX_PATH, RemoteUserFolder);
			  fRemoteShared=TRUE;
			  }
			  FindClose(hFind);
			  */
		
		return TRUE;
	}
	else 
	{
		RETAILMSG(1,(TEXT("The network Mapping is Fail!\r\n")));
		fRemoteShared=FALSE;
		return FALSE;
	}
}

BOOL CNetEnvSetting::TestFolder(PTCHAR pFolder)
{
#define FOLDER_RETRY_TIMES 3
	int i, RandomNum;
	BOOL fRetVal=FALSE;
	TCHAR FolderTemp[MAX_PATH]={0};
	TCHAR FolderName[MAX_PATH]={0};
	StringCchCat( FolderName, MAX_PATH, pFolder);
	fRetVal=CreateDirectory(FolderName, NULL); 
	
	for (i=0;i<FOLDER_RETRY_TIMES;i++)
	{
		RandomNum=abs(Random());
		_ltow( RandomNum, FolderTemp, 10 );
		StringCchCat( FolderName, MAX_PATH, _T("\\"));
		StringCchCat( FolderName, MAX_PATH, FolderTemp);
		fRetVal=CreateDirectory(FolderName, NULL); 
		if(fRetVal!=FALSE)break;
	}
	Sleep(ONE_SECOND);
	if(i>=FOLDER_RETRY_TIMES) return FALSE;
	fRetVal=RemoveDirectory(FolderName);
	return fRetVal;
}

⌨️ 快捷键说明

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