用一个bat文件,它来删除所有文件,最后删除自身

解决方案 »

  1.   

    就是担心快捷方式的名称被用户修改,比如我安装完QQ后总是喜欢把桌面上的快捷方式【腾讯 QQ】改成【QQ】恩,多谢,我再试试,只要批处理能删除自身和所在文件夹,这也是个好办法。
    目前就是EXE调用批处理命令来删除文件和自身的,但是效果不佳,而且无法删除所在文件夹
      

  2.   

    删除自身可以看看这篇:
    应用程序启动后修改自身EXE文件或自删除EXE文件(附VC++6.0源码)
    没有用批处理,批处理是个很简单的方式,你说的只有20%的机率可以成功,我觉得可能是批处理运行删除时,调用批处理的程序还未完全结束,导致批处理删除失败,可在批处理运行时sleep会儿,等所有程序都结束后再删除.
      

  3.   

    windows本意是不让自删除的,因此想要自删除一般的方法都会很繁琐,还不如加入计划任务。
    自身释放resource其实就不用zip去打包了,感觉多此一举
      

  4.   


    当安装程序的零碎文件非常多的时候,用ZIP非常方便,否则一个文件一个文件的往VS工程里加资源以及其它的一些手工操作非常麻烦,另外当安装文件大的时候用ZIP压缩一下那么整体安装包会小很多,直接往工程里加资源会导致安装程序过大。我在实际做的过程中遇到的这样的问题,当时也考虑过压缩释放,后来因为安装文件不多就懒得弄了。
    那个完全是我自己思考之后写出的代码,在2009年第一次做正式项目时写的,绝对不可能是任何公司的源码。当然里面一些关键函数比如创建快捷方式释放资源之类是在网上搜的。
      

  5.   

      奇怪的是,上述代码对自定义类型的资源,如GIF、JPEG甚至EXE都能正确释放,但对于BMP类型的却无能为力。虽然保存到了磁盘上,却无法打开,提示为格式错误!关于这一点我是这样解决的:先将BMP类文件加入工程,然后用记事本方式打开.rc资源文件,编辑里面的BMP文件的那一行,将其资源类型改为自定义类型比如 "FILE" ,然后将源BMP文件重新往原来加入工程的那个文件覆盖替换一下(因为第一次将BMP文件加入VS工程后好像BMP文件已经被修改了,没有信息头了),然后重新编译,安装时释放时是没有问题的。
      

  6.   

    支持分享
    窃以为,学学微软的wix,以后有打包需求,思路会更广。 毕竟那个是经过无数验证的东西,值得信任
    至于删除自己 如果不想绕路 可以使用MoveFileEx 标志MOVEFILE_DELAY_UNTIL_REBOOT将会使该文件在重启后被删除当然 我想你执行删除的东西可做成一个exe 在卸载时把这个exe放到临时目录里执行 执行完毕后 使用MoveFileEx设置重启后删除
    用户是没有任何感觉的另外提醒一下 程序卸载里表里是否有你的程序呢?
      

  7.   

    正打算用临时目录来做自删除,而且不用重启后删除。就是用5楼提供的方法,把exe放到临时目录里等卸载引导程序完全退出了就行了
    你是说注册表吗?因为我安装的时候没有操作注册表,所以卸载的时候也没操作注册表
      

  8.   

    https://code.csdn.net/snippets/65284
     我之前有用过,可行
      

  9.   

    我找了下控制面板的程序卸载表,没有我的程序,这是不是要写了注册表才会显示出来?
    列表里没有是不是不专业或者不安全?安装程序要注册到控制面板的程序卸载表,需要写注册表
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
    分别新建健值
    DisplayIcon
    UninstallString
    DisplayVersion
    DisplayName
    Publisher
      

  10.   

    安装程序我以前也做过,类似Installshield,用户根据自己的情况打包需要打包的东西,安装程序界面,安装路径,快捷键名称等等全由用户自行配置。楼主有没有考虑过有些dll或配置信息需要注册的情况?比如用户需要打包一个工程,工程中某些dll或.inf文件需要注册才能使用?
     一个安装程序,如果只是将目录压缩,安装时解压到安装目录中,这些都比较简单,但有些东西并不是把目录解压出来就可以用,还需要做相应注册才能用,这些东西就比较烦锁一点。
      

  11.   

    我找了下控制面板的程序卸载表,没有我的程序,这是不是要写了注册表才会显示出来?
    列表里没有是不是不专业或者不安全?安装程序要注册到控制面板的程序卸载表,需要写注册表
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
    分别新建健值
    DisplayIcon
    UninstallString
    DisplayVersion
    DisplayName
    Publisher
    很好 这5个就够了 具体你参考一下其它软件怎么写的就可以了