关于文件操作(50分)

  • 主题发起人 主题发起人 Dick
  • 开始时间 开始时间
D

Dick

Unregistered / Unconfirmed
GUEST, unregistred user!
我在开发程序的时候,遇到了这样一个问题:<br>需要将本程序硬盘上的EXE文件替换掉,比如<br>说从网络上自动升级程序,大概就得这么做。<br>我个人认为着应该是可以的,因为许多软件<br>的反安装程序都可以删掉自己。所以我想应该<br>有什么方法来解决这个问题,免得老是让用户<br>自己去拷贝文件。<br>50分大概不多,希望有大侠出手。
 
你可以建立第二个程序,专门来处理需要修改和更新的那个exe文件.<br>如果exe删除或修改自身,恐怕不行.除非编写自毁文件.这方法再大富翁<br>中有,有程序编写一个dos下的批处理文件,即可.
 
我就是要保证一个EXE程序,再引入其他的文件恐怕不可以<br>自毁文件在什么地方?
 
借用大虾的!自毁文件如下<br>procedure TForm1.closeme;<br>var f:textfile;<br>begin &nbsp;assignfile(f,'./delme.bat');<br>&nbsp; rewrite(f); &nbsp;<br>writeln(f,'@echo off'); &nbsp;<br>writeln(f,':loop');<br>&nbsp; writeln(f,'del "'+application.ExeName+'"');<br>&nbsp; writeln(f,'if exists '+application.exename+' goto loop'); &nbsp;<br>writeln(f,'del ./delme.bat');<br>&nbsp; closefile(f); <br>&nbsp;winexec('./delme.bat', SW_HIDE); &nbsp;<br>close;<br>end;
 
呵呵, 一般都是从网上下载一个专门升级程序来修改的:-)
 
呵呵,那个自毁文件问题是我问的<br>
 
How to automatic doing the uograde work?<br>I mean. when I am connected to net, can I uograde<br>"myself" when the application is running?<br>Many commericial program can do so, I want to accomplish this.<br><br>Sorry, the enviroment I am using now is Irix, so I can<br>not input Chinese. Sorry again.
 
impossible.<br>except deleting by other application and self stop running(the application<br>can be created at runtime, such as a bat file.)
 
呵呵,仔细一看,"自毁文件"的代码还有点bug,修改如下:<br>writeln(f,'if exists '+application.exename+' goto loop'<br>改成:<br>writeln(f,'if exists &lt;font color=red&gt;"&lt;/font&gt;'+application.exename+'&lt;font color=red&gt;"&lt;/font&gt; goto loop'<br>(类似于del那一句)<br>因为DOS下面,如果是长文件名,要用双引号扩起来.<br>
 
不好意思,一个简单的问题打扰了大家这么久<br>出差了一个星期,回来就平分了这50分算了
 
后退
顶部