精华内容
下载资源
问答
  • 要做的工作很简单,就是调用winrar解压缩文件,不过程序是以服务的方式启动的,在VS2008下用普通程序的方式调试是没问题的,但是一使用服务方式就不起作用,实在搞不懂了,代码如下: TCHAR szCommandLine[BUFFER_...
  • 进程调用winrar

    2012-06-12 21:28:15
    1、先说说如何通过java进行文件压缩 ...2、如果想要像使用winrar一样的话,那么就需要进行进程调用了。 C:\Program Files\WinRAR>Rar.exe RAR 3.71 版权 (C) 1993-2007 Alexander Roshal 20 九月 20

    1、先说说如何通过java进行文件压缩

    一般java.util.zip可以支持普通的文件压缩和解压,但是不能支持加密等操作。

    2、如果想要像使用winrar一样的话,那么就需要进行进程调用了。

    C:\Program Files\WinRAR>Rar.exe

    RAR 3.71    版权 (C) 1993-2007 Alexander Roshal    20 九月 2007
    已注册给 cafevn

    用法:     rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件...>
                   <@列表文件...> <解压路径\>

    <命令>
      a             添加文件到压缩文件
      c             添加压缩文件注释
      cf            添加文件注释
      ch            改变压缩文件参数
      cw            写入压缩文件注释到文件
      d             删除压缩文件中的文件
      e             解压压缩文件到当前目录
      f             刷新压缩文件中的文件
      i[参数]=<串>  在压缩文件中查找字符串
      k             锁定压缩文件
      l[t,b]        列出压缩文件[技术信息,简洁]
      m[f]          移动到压缩文件[仅对文件]
      p             打印文件到标准输出设备
      r             修复压缩文件
      rc            重建丢失的卷
      rn            重命名压缩文件
      rr[N]         添加数据恢复记录
      rv[N]         创建恢复卷
      s[名字|-]     转换压缩文件为自解压格式或转换回压缩文件
      t             测试压缩文件
      u             更新压缩文件中的文件
      v[t,b]        详细列出压缩文件[技术信息,简洁]
      x             用绝对路径解压文件

    <开关>
      -             停止扫描
      ac            压缩或解压后清除存档属性
      ad            添加压缩文件名到目标路径
      ag[格式]      使用当前日期生成压缩文件名
      ao            添加具有压缩属性的文件
      ap<格式>      添加路径到压缩文件中
      as            同步压缩文件内容
      av            添加用户身份校验(仅注册版本可用)
      av-           禁用用户身份校验
      c-            禁用注释显示
      cfg-          禁用读取配置
      cl            名称转换为小写
      cu            名称转换为大写
      df            压缩后删除文件
      dh            打开共享文件
      ds            对固实压缩文件禁用名称排序
      e[+]<属性>    设置文件排除和包括属性
      ed            不添加空目录
      en            不添加"压缩文件结束"标志
      ep            从名称中排除路径
      ep1           从名称中排除基本目录
      ep2           展开为完整路径
      ep3           扩展路径为包含盘符的完全路径
      f             刷新文件
      hp[密码]      同时加密文件数据和文件头
      id[c,d,p,q]   禁用消息
      ieml[地址]    用 E-mail 发送压缩文件
      ierr          发送所有消息到标准错误设备
      ilog[名称]    把错误写到日志文件(只有注册版本可用)
      inul          禁用所有消息
      ioff          完成一个操作后关闭 PC 电源
      isnd          启用声音
      k             锁定压缩文件
      kb            保留损坏的已解压文件
      m<0..5>       设置压缩级别(0-存储...3-默认...5-最大)
      mc<参数>      设置高级压缩参数
      md<大小>      以KB为单位的字典大小(64,128,256,512,1024,2048,4096 or A-G)
      ms[ext;ext]   指定存储的文件类型
      mt<线程>      设置线程数
      n<文件>       仅包含指定的文件
      n@            从标准输入设备读取文件名到包括
      n@<列表>      在指定的文件列表包括文件
      o+            覆盖已存在文件
      o-            不覆盖已存在文件
      oc            设置 NTFS 压缩属性
      or            自动重命名文件
      os            保存 NTFS 流
      ow            保存或恢复文件所有者和组
      p[密码]       设置密码
      p-            不询问密码
      r             递归子目录
      r0            仅递归通配符名称的子目录
      ri<P>[:<S>]   设置优先级(0-默认,1-最小..15-最大)和以毫秒为单位的休眠时间
      rr[N]         添加数据恢复记录
      rv[N]         创建恢复卷
      s[<N>,v[-],e] 创建固实压缩文件
      s-            禁用固实压缩文件
      sc<chr>[obj]  指定字符集
      sfx[名称]     创建自解压压缩文件
      st[名称]      从标准输入设备读取数据(stdin)
      sl<大小>      处理小于指定大小的文件
      sm<大小>      处理超过指定大小的文件
      t             压缩后测试文件
      ta<日期>      添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS
      tb<日期>      添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS
      tk            保留原始压缩文件时间
      tl            设置压缩文件时间为最新文件时间
      tn<时间>      添加 <时间> 以后的文件
      to<时间>      添加 <时间> 以前的文件
      ts<m,c,a>[N]  保存或恢复文件时间(修改,创建,访问)
      u             更新文件
      v             自动检测创建卷的大小或者列出所有的卷
      v<大小>[k,b]  创建卷大小=<大小>*1000 [*1024, *1]
      vd            创建容量前清除磁盘内容
      ver[n]        文件版本控制
      vn            使用旧风格的卷命名方案
      vp            每卷之前暂停
      w<路径>       指定工作目录
      x<文件>       排除指定的文件
      x@            从标准输入设备读取要排除的文件名
      x@<列表>      排除指定列表文件中的文件
      y             假设对全部询问都回答是
      z[文件]       从文件读取压缩文件注释

    执行:C:\Program Files\WinRAR\Rar.exe a -ep1 -hp20120612 D:/a.zip  D:/b/

    单元测试完成文件压缩。

    但是进程调用的时候会出现进程一直挂着无法继续执行下去,汗~~~

    重点分析:

    任务管理器中Rar.exe一直存在。指定路径下压缩文件已经生成,但未结束,无法打开,无法操作,提示有进程占着。

    参考了:http://yearsaaaa123789.iteye.com/blog/1404865

    来了灵感,虽然文中提到的是mp3的处理,但是winrar是否也有相应的参数,可以不让子进程向输入流写入数据

    就是参数-inul

     public boolean zipPassWord(String foler,String zipfile,String password) {
            //winrar软件的安装路径
           String cmd="";       
           cmd = rarPath + " a -ep1 -inul -hp"+password+" " + zipfile + "  "+ foler;//整个压缩文件加密,
           System.out.println("========"+cmd);
        try {
             Process proc = Runtime.getRuntime().exec(cmd);
             proc.waitFor();        
             return true;
       } catch (Exception e) {
                   e.printStackTrace();
       }
       return false;
     }

    展开全文
  • WinRAR去广告

    千次阅读 2019-03-11 16:47:14
    打开x32dbg,附加到WinRAR进程,在DestoryWindow这个API下断点,在调试器的命令行输入bp DestoryWindow即可,点击广告窗口的关闭按钮,在API中断下,栈回溯返回地址就能找到广告窗口的消息处理过程。在IDA中打开,...

    下载最新版本WinRAR,结果一打开就有广告,说好的体验30天呢。可能是之前装过的WinRAR还残留有注册表信息吧,广告如下:

    打开x32dbg,附加到WinRAR进程,在DestoryWindow这个API下断点,在调试器的命令行输入bp DestoryWindow即可,点击广告窗口的关闭按钮,在API中断下,栈回溯返回地址就能找到广告窗口的消息处理过程。在IDA中打开,找到对应广告窗口的消息处理函数,交叉引用回溯,可以看到窗口类的注册

    可以看到这个窗口类名为RarReminder,Reminder是提示,提醒之类的意思,太真实了。

    继续看AdWndProc,可以发现一个诡异的URL

    ad开头肯定就是广告的链接了,而紧接着的0xF4E9F0函数就是广告的显示函数了。IDA反编译如下

    HWND __thiscall sub_4BE9F0(LPVOID lpParam, int a2, HWND hWnd, int a4, int a5, char a6)
    {
      LPVOID v6; // ebx
      HWND v7; // eax
      int v8; // edi
      int v9; // esi
      HINSTANCE v10; // ST28_4
      HWND v11; // eax
      HWND result; // eax
      bool v13; // zf
      WCHAR *v14; // esi
      struct tagRECT Rect; // [esp+Ch] [ebp-14h]
    
      v6 = lpParam;
      *((_DWORD *)lpParam + 2) = hWnd;
      *((_BYTE *)lpParam + 38) = a6;
      ShowWindow(hWnd, 0);
      sub_4BE560(a2);
      *((_DWORD *)v6 + 7) = a4;
      *((_DWORD *)v6 + 8) = a5;
      GetWindowRect(hWnd, &Rect);
      v7 = GetParent(hWnd);
      MapWindowPoints(0, v7, (LPPOINT)&Rect, 2u);
      if ( *((_DWORD *)v6 + 1) )
        DestroyWindow(*((HWND *)v6 + 1));
      v8 = Rect.left;
      v9 = Rect.right - Rect.left;
      v10 = *(HINSTANCE *)v6;
      v11 = GetParent(hWnd);
      result = CreateWindowExW(
                 0,
                 L"RarHtmlClassName",
                 0,
                 0x40000000u,
                 v8,
                 Rect.top,
                 v9,
                 Rect.bottom - Rect.top,
                 v11,
                 0,
                 v10,
                 v6);
      v13 = *((_DWORD *)v6 + 4) == 0;
      *((_DWORD *)v6 + 1) = result;
      if ( v13 )
      {
        if ( hWnd )
        {
          if ( !*((_DWORD *)v6 + 8) )
          {
            result = (HWND)*((_DWORD *)v6 + 7);
            if ( result )
            {
              result = (HWND)sub_4BE690(*((PCNZWCH *)v6 + 7));
              v14 = (WCHAR *)result;
              if ( result )
              {
                ShowWindow(hWnd, 5);
                SetWindowTextW(hWnd, v14);
                result = (HWND)j___free_base(v14);
              }
            }
          }
        }
      }
      else if ( result )
      {
        ShowWindow(result, 5);
        result = (HWND)UpdateWindow(*((HWND *)v6 + 1));
      }
      return result;
    }

    若直接将这个函数在开头就ret掉,那么广告的内容就没了,效果如下

    说明这个窗口本质上是个子窗口,不过我们可以通过修改这个函数内容来使广告内容变为我们想要的东西,这里懒得改了。

    要去除广告窗口,就要将这个父窗口也去掉,这其实很容易,我们可以在消息处理的开头就修改控制流,直接跳转到调用DestoryWindow的地址即可去除广告。

    patch后就算是去除广告了。

    展开全文
  • 今天就让我们来说说SSIS的进程任务。下面我们以一个简单的解压例子来Demo下。 1、在工具箱中找到“进程任务”组件,将其拖到控制流面板中 2、设置“进程任务”的参数。一是可执行文件的路径,二是可执行文件...

    SSIS的控制流为我们提供了很多不错的组件,用好它们,可以极大的提高我们在ETL过程中效率。

    今天就让我们来说说SSIS的进程任务。下面我们以一个简单的解压例子来Demo下。

     

    1、在工具箱中找到“进程任务”组件,将其拖到控制流面板中

     

    2、设置“进程任务”的参数。一是可执行文件的路径,二是可执行文件需要的参数。

     

    设置好相关参数之后,执行SSIS包,我们已经可以成功执行了。

     

    3、动态设置可执行文件需要的参数(通过变量)

    I、添加变量:

     

    II、双击“进程任务”实例,将弹出一个对话框,找到左侧的“表达式”,点击

     

    III、点击Expressions右侧的"..."按钮,弹出“表达式生成器编辑器”,选择Arguments

     

    IV、再点击右侧的"..."按钮,就可以设置Arguments表达式的值。

     

    OK,大功告成!

     

    示例包下载DecompressDemo.rar

    转载于:https://www.cnblogs.com/stu-acer/archive/2008/08/01/1258518.html

    展开全文
  • 要实现的功能: 创建文件夹,然后往该文件夹中复制数据,复制完成后压缩此...strShell.Format(_T("C:\\Program Files\\WinRAR\\RAR.exe A -ep -df -ibck \"%s\" \"%s\""),strDes,strSrc); ShellExecute(NULL, _T("...

    要实现的功能:

    创建文件夹,然后往该文件夹中复制数据,复制完成后压缩此文件夹。
    上述过程是一直在循环进行,不断生成新的文件夹,然后压缩

    遇到的问题

    strShell.Format(_T("C:\\Program Files\\WinRAR\\RAR.exe A -ep -df -ibck \"%s\" \"%s\""),strDes,strSrc);
    ShellExecute(NULL, _T("open"), _T("winrar"), strShhell, NULL, SW_HIDE);
    

    利用ShellExecute()函数进行压缩时,是后台进行,不会等待压缩完成再继续运行,这样出现的问题就是前一个文件夹还在后台压缩,下一个文件夹又开始压缩,多的时候会同时有五六个后台进程,占用CPU和内存很高,达到100%会导致程序崩溃

    解决方法

    在执行压缩命令后,如果可以等待压缩完成,再进行下一步操作,那么在同一时间,后台只会有一个压缩进程,所以需要创建一个新的进程,然后等待该进行执行结束即可。

    STARTUPINFO si;  
    ZeroMemory(&si, sizeof(si)); 
    si.cb = sizeof STARTUPINFO;  
    si.wShowWindow = SW_HIDE;  
    si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;  
    PROCESS_INFORMATION pi; 
    BOOL res = CreateProcess(NULL, (char *) (LPCSTR)strShell.GetBuffer(), NULL, NULL, NORMAL_PRIORITY_CLASS | CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
    WaitForSingleObject(pi.hProcess, INFINITE);
    

    WaitForSingleObject()函数会等待pi进程结束再继续往下走

    展开全文
  • WINRAR5.0正式注册版

    2013-10-10 10:14:03
    较老的软件,包括老版本的 WinRAR,不能解压 RAR 5.0 压缩文件,所以如果你计划把 一个压缩文件发送给其他人,则需要考虑兼容性问题。你可以在压缩对话框中选择 "RAR" 替代 "RAR5" 选项创建 RAR 4.x 压缩文件来...
  • winrar 压缩

    2018-04-16 23:27:43
     //无限期等待进程 winrar.exe 退出  if (process.HasExited)  {  flag = true;  }  process.Close();  }  catch (Exception e)  {  throw e;  }  return flag;  }  /// 将一个文件从指定压缩文件中...
  • 自己写的进程管理工具,可以快速进入系统进程文件所在目录。 方便查看是否是病毒或木马进程。win7和win10下需要管理员权限运行才能看到进程所在目录。 ...(注意:需要 winrar v5.0以上版本解压)
  • WinRar命令行参数

    2016-01-25 16:38:18
    原文:http://hi.baidu.com/e_sackula/blog/item/8ec19dc8fd70a90901e92887.html[语法]RAR [ - ] [ ]...简单的例子和说明:压缩文件夹winrar.exe a -ag -k -r -s -ibck c:\bak.rar c:\dat\压缩多个文件winrar a -ag -i
  • 内容简介:操作系统课程设计——进程管理以下是课程设计题目:实验一 进程管理一、实验目的1.了解进程与程序的区别,加深对进程概念的理解2.掌握进程并发执行的原理,及其所引起的同步、互斥问题的方法3.利用...
  • 作为后台(不可见)或前景(可见)进程运行。 UNRAR.m支持提取多种压缩文件格式,包括RAR,ZIP和GZ。 WinRAR支持的其他文件格式可能有效,但未经测试。 支持提取受密码保护的RAR存档。 不支持高级功能,例如修复具有...
  • 结束非系统进程

    2013-06-04 22:39:26
    一键结束所有非系统进程,这是个WINRAR自解压文件,内含一个BAT文件,根据需要,可自行修改。需要这个功能的会感到非常简单实用。
  • VC++调用winrar

    千次阅读 2012-11-18 15:20:20
    1.首先判断是否安装winrar,读注册表 #include #include //有的主机上的注册表键值不全,必须进行对多个键的分析 char* value1="InstallLocation"; char* value2="UninstallString"; char* value3="DisplayIcon...
  • winrar3.7 Beta8

    2007-07-07 00:17:02
    在显示压缩和解压进程的对话框的设计改变: <br> a) 提供更多的空间用于文件名, 允许较长的名称; <br> b) 在单独行中显示当前压缩文件名, 允许比以前更长的压缩文件名; <br> c) 当压缩时, 在空行显示当前的...
  • 使用winrar执行备份.js

    2007-06-01 00:40:05
    1、假设需要备份mail目录,mail目录的绝对路径为:e:\pimshell\mail...3、双击执行"执行备份.js",自动构造winrar命令行参数,启动winrar的备份进程。 4、如果需要,你还可以直接将"执行备份.js"的快捷方式放到桌面上。
  • WinRAR智能备份

    千次阅读 2014-05-15 12:21:51
    WinRAR和计划任务实现局域网自动增量备份 某日,果冻一上班便听到同事们议论纷纷,凑近一听,原来隔壁办公室的夹生饭的电脑中的一个文件夹被他不小心删除了,而这个文件夹内的数据是非常重要的。由于没有...
  • winrar 3.9 深度会员版

    2009-08-13 11:22:17
    这是深度会员专用的解压工具 永久免费 不用注册 解压速度更加快速 稳定 可同时进行多进程处理 预先做好了优化处理 不会想你的C盘写入数据 保持C盘纯净
  • Java执行winrar.exe cmd命令阻塞问题解决 java程序中执行rar.exe cmd 命令卡掉,一直找不到原因,点击 Process proc=Runtime.getRuntime().exec(cmd); 方法名查看源代码才发现是主线程阻塞在 proc.waitFor() 。简单...
  • 解决一切假死程序不能关闭的 精简进程数 释放cpu资源 无法自己找出未关闭的进程 的 都可以用这个
  • 1、假设需要备份mail目录,mail目录的绝对路径为:e:\pimshell\mail...3、双击执行"执行备份.js",自动构造winrar命令行参数,启动winrar的备份进程。 4、如果需要,你还可以直接将"执行备份.js"的快捷方式放到桌面上。
  • WinRAR的压缩命令

    2013-12-07 16:57:19
    如果 参数 是 2,则跳过开始解压的确认,但用户仍然可以看到压缩文件的解压进程。 Silent=参数 Path 设置默认的目标路径。路径的绝对使用起始点在不更改的情况下为<驱动器号>:,如果 <路径> 只包含了名称...
  • WinRAR去广告(简体中文版)

    千次阅读 2019-09-04 15:56:23
    前两天使用发现电脑上多了弹窗广告,用任务管理器找到弹窗广告进程所在文件夹,跳出来布丁压缩这个软件,而且在控制面板卸载软件目录里面没有这个软件。直接在文件夹里面PDZipUninst.exe 进行卸载。 卸载完后导致...
  • using System; using Microsoft.Win32; using System.Diagnostics; using System.IO; namespace MSCL { /// /// 压缩解压类 /// public class ZipHelper { /// /// 利用 WinRAR 进行
  • window 守护进程

    千次阅读 2016-01-09 11:01:22
    这个脚本提供两种方式守护,一种是通过进程名,但对于进程名都是java.exe的java程序不适用,另一种是通过netstat查找应用程序所监听的端口是否正在被监听。这两种方式可以在脚本中通过两个冒号注释来选择切换。下面...
  • windows 命令行中使用winrar

    万次阅读 2014-09-15 14:21:29
    'winrar' 不是内部或外部命令,也不是可运行的程序或批处理文件。 简单处理一下: 我的电脑右键属性-》高级-》环境变量-》系统变量-》bianji 变量名:path 变量值:C:/Program Files/WinRAR; --变量值...
  • winrar制作安装文件

    千次阅读 2012-06-01 08:55:27
    摘要:WINRAR除了用来压缩文件外,还可以用生成自解压文件。正是由于它可以生成自解压格式的可执行文件包,兼之可以设置桌面快捷方式、创建程序以及解压后运行文件能力,因此有自由软件、免费软件用它来制作软件...
  • 右键关联菜单中控制自解压模块的进程。例如,如果你在较慢的网络磁盘中频繁右键 点击 ".exe" 文件,你可以关闭 "网络磁盘" 选项来减少显示右键关联菜单的显示延 迟。 7. 如果你在 WinRAR 的外壳的文件列表中按...
  • 本文的原理是借助Windows平台安装的WinRAR(WinZip)实现C#程序的调用(注:WinRAR压缩解压WinZip同样适用)。   先来看WinRAR(WinZip)自身的支持调用命令: 压缩命令:a {0} {1} -r 【{0}:压缩后文件名|{1...
  • WinRAR自解压的脚本命令

    千次阅读 2013-09-04 21:18:37
    WinRAR自解压的脚本命令  2009-08-11 22:14:23| 分类: 计算机技术|字号 订阅 Path=.\test 解压路径,如果只有名称无路径将默认解压到Program Files;可以使用绝对路径;如果想解压到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,283
精华内容 1,713
关键字:

winrar进程