QQ登录

只需一步,快速开始

190上位机VC MFC利用压缩软件解压压缩文件

[ 复制链接 ]

190上位机VC MFC利用压缩软件解压压缩文件

190上位机VC MFC利用压缩软件解压压缩文件
190上位机VC MFC利用压缩软件解压压缩文件
功能展示
压缩软件有很多种,快压好压WINRAR等等,我们当前例程通过自己编写程序后台调用WINRAR压缩软件,实现文件的解压与压缩,效果如图;
要点提示
WINRAR解压软件的调用可以用函数ShellExecute(); ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制
ShellExecute函数原型及参数含义如下:
ShellExecute(
hWnd: HWND; {指定父窗口句柄}
Operation: PChar; {指定动作, 譬如: open、runas、print、edit、explore、find[2]  }
FileName: PChar; {指定要打开的文件或程序}
Parameters: PChar; {给要打开的程序指定参数; 如果打开的是文件这里应该是nil}
Directory: PChar; {缺省目录}
ShowCmd: Integer {打开选项}
): HINST;
ShowCmd 参数可选值:SW_HIDE = 0; {隐藏}
SW_SHOWNORMAL = 1; {用最近的大小和位置显示, 激活}
SW_NORMAL = 1; {同 SW_SHOWNORMAL}
SW_SHOWMINIMIZED = 2; {最小化, 激活}
SW_SHOWMAXIMIZED = 3; {最大化, 激活}
SW_MAXIMIZE = 3; {同 SW_SHOWMAXIMIZED}
SW_SHOWNOACTIVATE = 4; {用最近的大小和位置显示, 不激活}
SW_SHOW = 5; {同 SW_SHOWNORMAL}
SW_MINIMIZE = 6; {最小化, 不激活}
SW_SHOWMINNOACTIVE = 7; {同 SW_MINIMIZE}
SW_SHOWNA = 8; {同 SW_SHOWNOACTIVATE}
SW_RESTORE = 9; {同 SW_SHOWNORMAL}
SW_SHOWDEFAULT = 10; {同 SW_SHOWNORMAL}
SW_MAX = 10; {同 SW_SHOWNORMAL}

使用此函数控制WINRAR时通过函数的第四个参数实现,第四个参数的具体形式可以参照例程或参数例程根目录的<调用WINRAR软件的指令用法>使用;
要注意的是指令用空格分割不同部分,所以在解压带空格的文件时,注意空格问题;
WIN8系统调用此函数打开文件无效。
实现功能
1.新建基于对话框的应用程序
2.拖拽一编辑框ID为IDC_EDIT1,用于显示WINRAR软件的安装路径;依次拖拽按钮<获取WINRAR安装路径>《解压指定压缩文件》《压缩指定文件夹》
  1. void CGkbc8Dlg::OnPath()
  2. {
  3.         HKEY hKEY;   
  4.         LPCTSTR Rgspath = _T("Software\\WinRAR");   
  5.         LONG ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, Rgspath, 0, KEY_READ, &hKEY);   
  6.         if(ret != ERROR_SUCCESS)   
  7.         {  
  8.                 ::MessageBox(NULL, _T("获取WinRAR安装路径失败!"), _T("出错啦~!"), MB_OK);  
  9.                 RegCloseKey(hKEY);   
  10.                 return ;   
  11.         }   
  12.         // 读取键值内容   
  13.         DWORD type = REG_SZ;   
  14.         BYTE PathInfo[MAX_PATH];   
  15.         DWORD dwInfoSize = MAX_PATH;   
  16.         ret = RegQueryValueEx(hKEY, _T("exe32"), NULL, &type, PathInfo, &dwInfoSize);   
  17.         if(ret != ERROR_SUCCESS)   
  18.         {     
  19.                 ::MessageBox(NULL, _T("没有安装WinRar解压缩软件,请先安装WinRar解压缩软件"), _T("出错啦~!"), MB_OK);   
  20.                 RegCloseKey(hKEY);     return ;   
  21.         }  
  22.         CString Path;
  23.         Path.Format("%s",PathInfo);
  24.         SetDlgItemText(IDC_EDIT1,Path);
  25. }
复制代码
  1. void CGkbc8Dlg::OnUnzip()
  2. {
  3.         CFileDialog Dlg(true,"rar",NULL,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST|OFN_EXPLORER,"RAR文件(*.rar)|*.rar||",this);
  4.         if(Dlg.DoModal()==IDOK)
  5.         {
  6.                 CString sFromFile = Dlg.GetPathName();//要解压的文件
  7.                 CString sToFile   = sFromFile.Left(sFromFile.Find("."));//解压到的目录
  8.                 CString sCommand;
  9.                 sCommand.Format("X %s %s",sFromFile,sToFile);//执行解压的指令
  10.                 ::CreateDirectory(sToFile,NULL);
  11.                 ::ShellExecute(NULL,"open","WinRar.exe",sCommand,NULL,SW_SHOW);
  12.         }
  13. }         BROWSEINFO bi;   
  14.         char buffer[MAX_PATH];   
  15.         ZeroMemory(buffer,MAX_PATH);   
  16.         bi.hwndOwner=GetSafeHwnd();   
  17.         bi.pidlRoot=NULL;   
  18.         bi.pszDisplayName=buffer;   
  19.         bi.lpszTitle="选择一个文件夹";   
  20.         bi.ulFlags=BIF_EDITBOX;   
  21.         bi.lpfn=NULL;   
  22.         bi.lParam=0;   
  23.         bi.iImage=0;
  24.         LPITEMIDLIST pList=NULL;   
  25.         if((pList=SHBrowseForFolder(&bi))!=NULL)   
  26.         {   
  27.                 char path[MAX_PATH];
  28.                 ZeroMemory(path,MAX_PATH);
  29.                 SHGetPathFromIDList(pList,path);

  30.                 CString sFromFile(path),sCommand;
  31.                 sFromFile += ".rar";//要压缩的文件
  32.             CString sToFile(path);//压缩文件的存放目录
  33.                 sCommand.Format("a %s %s",sFromFile,sToFile);//指令注意空格
  34.                 ::ShellExecute(NULL,"open","WinRar.exe",sCommand,NULL,SW_SHOW);
  35.         }
复制代码
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:190.上位机VC MFC利用压缩软件解压压缩文件.rar 
文件大小:139.63 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索