我们都用过winarar。只要在想要被压缩的文件图标上点击右键,在右键菜单中选择“添加到压缩文件...”就可以直接执行winarar并将此文件直接进行压缩了。这个功能该怎么实现呢?就是我如何知道在哪个文件上点击了哪个右键菜单选项呢?这个应该是用消息拦截吧?那么消息里哪个参数可以得到被点击的文件路径呢?

解决方案 »

  1.   

    你好LZ你可以使用RAR自带的命令行实现这功能,以下摘自RAR说明文档中命令行的相关使用
    快速起步: 从命令行解压文件 
    --------------------------------------------------------------------------------
    解压文件并包含完整路径的命令行语法是:WinRAR X [-开关] <压缩文件> [文件] [@文件列表] [目标文件夹\]解压文件并忽略路径是:WinRAR E [-开关] <压缩文件> [文件] [@文件列表] [目标文件夹\]例如说,你要从压缩文件 LETTERS.RAR 中解压文件 LETTER.TXT 到当前文件夹时,请使用下列命令:WinRAR X LETTERS.RAR LETTER.TXT压缩文件扩展名是可选的,并且可以忽略。 下一个命令是从压缩文件 Songs 解压全部的 *.WAV 文件到 Audio 文件夹:WinRAR X Songs *.WAV Audio\在文件中列出要解压的文件,然后在命令行逐一列出也是可以的。这种例子下,在命令行必须指定被压缩文件列表文件的文件名。在文件名添加符号 @ 前缀。例如,如果你创建一个文件 Binaries,里面含有字符串 *.exe 和 *.com,然后运行命令 :WinRAR X TOOLS @BinariesTOOLS 压缩文件中所有 EXE 和 COM 扩展名的文件,都会被解压到当前文件夹。 解压期间,有个窗口将会出现显示操作的状况。如果你希望中断解压的进行,在命令窗口单击“取消”按钮。你也可以单击“后台”按钮将 WinRAR 最小化放到任务栏。如果解压完成,而且没有错误,WinRAR 将会返回到界面模式。在有错误的状况时,则会出现 错误诊断信息窗口。快速起步: 从命令行压缩文件 
    --------------------------------------------------------------------------------
    压缩文件的一般命令行命令语法为:WinRAR A [-开关] <压缩文件> [文件] [@文件列表] 例如说,你希望添加文件 LETTER.TXT 到压缩文件 LETTERS.RAR ,请输入:WinRAR A LETTERS.RAR LETTER.TXT如果未指定压缩文件扩展名,WinRAR 会使用在 压缩配置 选定的默认压缩文件格式。但是你仍可以指定 .RAR 或 .ZIP 扩展名的其中一种来替换上面的默认值。 下一个例子: 添加全部 *.WAV 文件到固实 RAR 压缩文件 Songs:WinRAR A -S Songs.RAR *.WAV在文件中列出要压缩的文件,然后在命令行逐一列出也是可以的。这种例子下,在命令行必须指定被压缩文件列表文件的文件名。在文件名前面添加符号 @ 前缀。这样,如果你创建一个文件 Binaries,里面含有字符串 *.exe 和 *.com,并运行命令:WinRAR A TOOLS.ZIP @Binaries全部在当前文件夹中有 EXE 和 COM 扩展名的文件,将会被添加到 ZIP 压缩文件 TOOLS 中。压缩期间,有个窗口将会出现显示操作的状况。如果你希望中断压缩的进行,在命令窗口单击 “取消” 按钮。你也可以单击“后台”按钮将 WinRAR 最小化放到任务栏。如果压缩完成,而且没有错误, WinRAR 将会返回到界面模式。在有错误的状况时,则会出现 错误诊断信息窗口。
      

  2.   

    在注册表中,而且你的程序还要能够处理命令行参数
    http://topic.csdn.net/t/20041112/22/3548808.html
      

  3.   

    我的意思是我开发一个程序,想通过右键菜单自动运行,这个程序用delhi编写,这个程序怎么知道我点击了右键菜单里的选项,并且怎么知道是哪个文件的右键菜单被点击。添加右键菜单我会的,我现在不知道怎样能够识别出在哪个文件的右键菜单中进行了点击操作
      

  4.   

    http://www.moon-soft.com/doc/843.htm其实百度一下,还是很多的