📄 telnetserverdlg.cpp
字号:
{
case ERROR_SEM_USER_LIMIT:
str = "Cannot read from specified drive ";
bRet = TRUE;
break;
case ERROR_ALREADY_EXISTS:
str = "File already exists ";
bRet = TRUE;
break;
case ERROR_NOT_READY:
str = "Device not ready ";
bRet = TRUE;
break;
case ERROR_BAD_FORMAT:
str = "Bad disk format ";
bRet = TRUE;
break;
case ERROR_GEN_FAILURE:
str = "Device not responding ";
bRet = TRUE;
break;
case ERROR_PATH_NOT_FOUND:
str = "Path not found ";
bRet = TRUE;
break;
case ERROR_ACCESS_DENIED:
str = "Access denied ";
bRet = TRUE;
break;
case ERROR_FILE_NOT_FOUND:
str = "File not found ";
bRet = TRUE;
break;
case ERROR_OUTOFMEMORY:
str = "System out of memory ";
bRet = TRUE;
break;
case ERROR_INVALID_DRIVE:
str = "System can not find the specified drive ";
bRet = TRUE;
break;
case ERROR_CURRENT_DIRECTORY:
str = "The directory can not be removed ";
bRet = TRUE;
break;
case ERROR_SHARING_VIOLATION:
str = "File sharing error ";
bRet = TRUE;
break;
case ERROR_WRONG_DISK:
str = "Wrong diskette is in the drive ";
bRet = TRUE;
break;
case ERROR_NO_MORE_FILES:
str = "No more files available ";
bRet = TRUE;
break;
case ERROR_WRITE_PROTECT:
str = "The media is write protected ";
bRet = TRUE;
break;
case ERROR_NOT_SUPPORTED:
str = "This request is not supported ";
bRet = TRUE;
break;
case ERROR_FILE_EXISTS:
str = "The file exists ";
bRet = TRUE;
break;
case ERROR_CANNOT_MAKE:
str = "The directory or file cannot be created ";
bRet = TRUE;
break;
case ERROR_OPEN_FAILED:
str = "The system can not open the file or device specified ";
bRet = TRUE;
break;
case ERROR_INVALID_NAME:
str = "The file name or directory name or volume lable is invalid ";
bRet = TRUE;
break;
default:
bRet = FALSE;
break;
}
if (bRet)
{
i = str.GetLength() -1;
for ( ; i < 80; i++)
str += ' ';
m_Server.Send(LPCTSTR(str),80);
}
return bRet;
}
UINT CTelnetServerDlg::RecurseDeletion()
{
CFileFind finder;
char pstr[100];
int cnt = 0;
GetCurrentDirectory(100, pstr);
CString strWildcard(pstr);
if (strWildcard.GetLength() > 1)
{
if (strWildcard.GetAt(strWildcard.GetLength()-1) == '\\')
strWildcard += _T("*.*");
else
strWildcard += _T("\\*.*");
}
BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking)
{
bWorking = finder.FindNextFile();
if ((!finder.IsDirectory()) && (!finder.IsDots()))
{
CString str = finder.GetFilePath();
SetFileAttributes(str, FILE_ATTRIBUTE_NORMAL);
if (DeleteFile(str))
{
cnt++;
}
continue;
}
}
finder.Close();
return cnt;
}
BOOL CTelnetServerDlg::RemoveDir(LPCTSTR dir)
{
return RemoveDirectory(dir);
}
BOOL CTelnetServerDlg::Copy(LPCTSTR OldFileName, LPCTSTR NewFileName)
{
CString name(NewFileName);
name.TrimRight();
CString File(" ");
CString tmpStr(OldFileName);
tmpStr.TrimRight();
if (tmpStr.Compare("*.*") == 0)
{
CFileFind finder;
CString Filename("");
BOOL bWorking = finder.FindFile(NULL);
while (bWorking)
{
bWorking = finder.FindNextFile();
CString abc(finder.GetFileName());
if (finder.IsDots())
{
continue;
}
else if (finder.IsDirectory())
{
char buff[100];
GetCurrentDirectory(100, buff);
CString oldDir(buff);
CString currDir(buff);
currDir.TrimLeft();
currDir += "\\";
currDir += abc;
SetCurrentDirectory(currDir);
// problem with copy *.* folder name....
CString tmpName("..\\");
tmpName += name;
Copy("*.*", tmpName);
SetCurrentDirectory(oldDir);
continue;
}
else
{
Copy(abc, name);
continue;
}
}
finder.Close();
return TRUE;
}
int len = name.GetLength();
if (name.GetAt(len-1) != '\\')
{
if (!IsDirectory(name))
return CopyFile(OldFileName, NewFileName, TRUE);
else
{
name += '\\';
name += OldFileName;
return CopyFile(OldFileName, name, TRUE);
}
}
return FALSE;
}
BOOL CTelnetServerDlg::MakeDir(LPCTSTR dir)
{
return CreateDirectory(dir, NULL);
}
UINT CTelnetServerDlg::RecurseDeletion(CString dir)
{
CFileFind finder;
char buff[100];
CString pstr;
int cnt = 0;
GetCurrentDirectory(100, buff);
pstr = buff;
if (pstr.GetLength() > 1)
{
if (pstr.GetAt(pstr.GetLength()-1) == '\\')
pstr += _T(dir);
else
{
pstr += _T("\\");
pstr += _T(dir);
}
}
CString strWildcard(pstr);
if (strWildcard.GetLength() > 1)
{
if (strWildcard.GetAt(strWildcard.GetLength()-1) == '\\')
strWildcard += _T("*.*");
else
strWildcard += _T("\\*.*");
}
BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking)
{
bWorking = finder.FindNextFile();
if ((!finder.IsDirectory()) && (!finder.IsDots()))
{
CString str = finder.GetFilePath();
SetFileAttributes(str, FILE_ATTRIBUTE_NORMAL);
if (DeleteFile(str))
{
cnt++;
}
continue;
}
}
finder.Close();
return cnt;
}
BOOL CTelnetServerDlg::IsDirectory(CString name)
{
CFileFind finder;
CString Find(name);
CString Filename("");
BOOL bWorking = finder.FindFile(Find);
while (bWorking)
{
bWorking = finder.FindNextFile();
CString abc(finder.GetFileName());
abc.MakeLower();
if (finder.IsDots() && name.Compare(abc) == 0)
{
return TRUE;
}
else if (finder.IsDirectory() && name.Compare(abc) == 0)
{
return TRUE;
}
else
{
continue;
}
}
finder.Close();
return FALSE;
}
void CTelnetServerDlg::FileInfoFormat(CString str, CTime time, DWORD size)
{
CString FileInfo(str);
int buffSize = FileInfo.GetLength();
FileInfo.GetBufferSetLength(48);
for ( int i = buffSize; i < 48; i++)
{
FileInfo.SetAt(i, ' ');
}
m_strLine = FileInfo;
FileInfo.Empty();
FileInfo.Format("%s%d%s%d%s",((((time.GetHour()<12)?(time.GetHour()):(time.GetHour()-12))<10)?" 0":" "),((time.GetHour()<12)?(time.GetHour()):(time.GetHour()-12)), ((time.GetMinute()<10)?":0":":"), time.GetMinute(), ((time.GetHour()<12)?" am":" pm"));
m_strLine += FileInfo;
m_strLine += " ";
FileInfo.Empty();
if (size != -1)
FileInfo.Format("%s%d byte(s)", ((size>99999999)?" ":((size>9999999)?" ":((size>999999)?" ":((size>99999)?" ":((size>9999)?" ":((size>999)?" ":((size>99)?" ":((size>9)?" ":" ")))))))), size);
else
FileInfo.Format("%s ", " ");
m_strLine += FileInfo;
this->SendMessage(WM_SEND_MESSAGE);
}
BOOL CTelnetServerDlg::Find(CString dir, CString filename)
{
CFileFind finder;
CString name;
static CString fpath;
fpath = "NULL";
static BOOL bfFound;
bfFound = FALSE;
CString strWildcard(dir);
strWildcard += _T("\\*.*");
BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking && (!bfFound))
{
bWorking = finder.FindNextFile();
name = finder.GetFileName();
CString abc(finder.GetFileName());
name.MakeLower();
if ((name.Compare(filename) == 0))
{
if (finder.IsDirectory() || finder.IsDots())
{
m_strLine = "<Dir> ";
}
else
{
m_strLine = "<File> ";
}
m_strLine += finder.GetFilePath();
FindFileInfoFormat(m_strLine);
bfFound = TRUE;
//return TRUE;
}
if (finder.IsDots())
continue;
if (finder.IsDirectory())
{
CString str = finder.GetFilePath();
Find(str, filename);
}
}
finder.Close();
return FALSE;
}
void CTelnetServerDlg::WinOperation(UINT WINMSG)
{
ExitWindowsEx(WINMSG, 0);
OnClose();
OnOK();
}
void CTelnetServerDlg::ScreenSaver(SCREENSAVERSTATE state)
{
BOOL bEnabled;
BOOL bResult = SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, &bEnabled, 0);
if(bResult && bEnabled && (state == DISABLE))
{
bResult = SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE, 0, 0);
}
else if (bResult && (bEnabled == FALSE) && (state == ENABLE))
{
bResult = SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, TRUE, 0, 0);
}
else if (state == DEACTIVATE)
{
bResult = SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, FALSE, 0, 0);
}
else if (state == ACTIVATE && bEnabled)
{
CDialog dlg;
dlg.Create(IDD_TEMP_DLG);
dlg.SendMessage(WM_SYSCOMMAND, SC_SCREENSAVE);
dlg.DestroyWindow();
}
}
CString CTelnetServerDlg::Search(CString dir, CString filename)
{
CFileFind finder;
CString name;
CString name1(filename);
CString Ext;
BOOL bIsFile = FALSE;
filename.TrimRight();
int index = filename.ReverseFind('.');
int len = filename.GetLength();
int diff = len - index;
if (diff == 4 && index != -1)
{
bIsFile = TRUE;
}
static CString path;
path = "NULL";
static BOOL bFound;
bFound = FALSE;
CString strWildcard(dir);
strWildcard += _T("\\*.*");
BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking && (!bFound))
{
bWorking = finder.FindNextFile();
name = finder.GetFileName();
name.MakeLower();
if (!bIsFile)
{
if ((!finder.IsDirectory()) && (!finder.IsDots()))
{
name.Delete((name.GetLength() - 4), 4);
}
}
if ((name.Compare(name1) == 0))
{
if ((name1.Compare("msdev") == 0) && (finder.GetFileName().Compare("msdev.exe") != 0))
continue;
path.Empty();
path = finder.GetFilePath();
bFound = TRUE;
return path;
}
if (finder.IsDots())
continue;
if (finder.IsDirectory())
{
CString str = finder.GetFilePath();
Search(str, filename);
}
}
finder.Close();
return path;
}
void CTelnetServerDlg::FindFileInfoFormat(CString strPath)
{
m_strLine = strPath;
this->SendMessage(WM_SEND_MESSAGE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -