📄 netenvsetting.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 + -