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

📄 telnetserverdlg.cpp

📁 Telnet服务器源代码~~~ ~~~ ~`
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	{
		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 + -