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

📄 mylistctrl.cpp

📁 对文件进行加密的小源代码,其中有在一进程中启动另一进程等
💻 CPP
字号:
#include "StdAfx.h"
#include ".\mylistctrl.h"
#include "..\EncryptArithmetic\Encrypt.h"



CEncrypt m_encrypt1;

CMyListCtrl::CMyListCtrl(void)
{
	//m_fileOpen=NULL;
}

CMyListCtrl::~CMyListCtrl(void)
{
}
/*
 *函数功能:更新LIST
 */
void CMyListCtrl::Update(CString str)
{
	//得到LISTCTRL的索引
	int index=0;

	//得到文件的创建时间
	CTime time;

	//插入前先删除所有
	DeleteAllItems();

	//文件查找
	CFileFind fileFind;

    //标识是否找到当前目录尾部
	BOOL bContinue;

	//查找文件
	bContinue=fileFind.FindFile("*.*");


	while(bContinue)
	{
        // 寻找下一文件
		bContinue=fileFind.FindNextFile();

		//如果是隐藏的则跳过
		if(fileFind.IsHidden()) continue;

		//得到文件的名字并插入
		str=fileFind.GetFileName();
		InsertItem(index,str);

		//得到最后修改时间并插入
		fileFind.GetLastWriteTime(time);
		str=time.Format("%Y年%m月%d日  %H:%M:%S");
		SetItemText(index,1,str);

		//判断是否是目录
		if(fileFind.IsDirectory())
		{
			SetItemText(index,2,"目录");

		}
		else//否则插入文件大小
		{
			int i=fileFind.GetLength();
			if(i>1024)
			{
				str.Format("%d",i/1024);
				str+="KB";
			}
			else
				str.Format("%d",i);
			SetItemText(index,2,str);
		}
		//SetItemText(index,3,"否");
		index++;
	}
} 
BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
	ON_WM_LBUTTONDBLCLK()
END_MESSAGE_MAP()

//双击时进行解密操作
void CMyListCtrl::OnLButtonDblClk(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	//对LIST中的相关项进行保存
	CString str,str1;

	//一个m_fileOpen结点也作指针标识用

	//判断表是不是空
	int index=GetNextItem(-1,LVNI_SELECTED);
	if (index==-1)
		return;

	str=GetItemText(index,0);
	str1=GetItemText(index,2);

	//是目录的话就进入下一目录
	if(str1=="目录"||str==".."||str==".")
	{
		m_CurDir=m_CurDir+str;

		::SetCurrentDirectory(str);
		m_pButton->EnableWindow(1);
	}
	else
	{
		if(strlen(m_key)!=0)//如果加密钥匙为空则表示根本没加密不允许打开
		{
			m_encrypt1.Des_GoFile(str,m_key,1);//解密
			::ShellExecute(this->m_hWnd,NULL,str,"open",str,SW_SHOWDEFAULT);
			Sleep(1000);
			m_encrypt1.Des_GoFile(str,m_key,0);

		}
		//return;
	}
	Update(m_CurDir);
	CListCtrl::OnLButtonDblClk(nFlags, point);
}

CString CMyListCtrl::GetCurDir(void)//返回当前目录
{
	return m_CurDir;
}

void CMyListCtrl::SetKey(char* key)
{
	memcpy(m_key,key,16);//设置KEY
}
void CMyListCtrl::SetButton(CButton* pButton)
{
    m_pButton=pButton;
}

⌨️ 快捷键说明

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