程序调用ShellExecute运行extract.exe解压CAB文件,在桌面和系统盘解压,ShellExecute返回成功,但是不生成文件在其他盘运行程序会正常生成文件
手动运行extract.exe解压CAB文件会生成文件我觉得应该和程序权限有关,有什么方法解决方法

解决方案 »

  1.   

    提升权限啊,Vista等上,需要UAC, ShellExecute调用的时候添加 run as 的verb
      

  2.   


    XP、2003、2000上都这样,vista和win7没试过
    你上面的解决方法具体怎么做,调用ShellExecute的时候怎么提升被ShellExecute调用的程序的权限
      

  3.   

    问题解决,是调用ShellExecute运行extract.exe传的参数不对
    要解压的文件路径不符合要求
    strCMD = _T("/a /e /y \"") + strFile + _T("\"");
    这样就行了,而且文件路径中'\'必须是‘\\’,这样才能在系统目录下解压不过strCMD = _T("/a /e /y ) + strFile;这样为什么能在其他盘解压在系统盘不行,求解