全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1902
推到 Plurk!
推到 Facebook!

关于自动更新的问题,大陆的兄弟都不会,哪位大大帮我看看,谢谢

缺席
terry_zhou82
一般會員


發表:8
回覆:22
積分:6
註冊:2012-08-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-08-28 21:09:16 IP:58.247.xxx.xxx 訂閱

[code delphi]
var
MyStream:TMemoryStream;
begin
MyStream:=TMemoryStream.Create;
try
try
idhttp1.Get('http://www.abroadradio.net/2.exe',MyStream);
except
end;
MyStream.SaveToFile('d:\2.exe');
RenameFile('c:\2.exe','c:\2.exe.bak');
copyfile('d:\2.exe','c:\2.exe',false);
DeleteFile('c:\2.exe.bak');
deletefile('c:\1.xml') ;
ShowMessage('更新成功,软件将重新启动');
ShellExecute(0, 'open', PChar('c:\2.exe'),nil, nil, SW_SHOWNORMAL);
form1.Close;

finally
MyStream.Free;
end;
end;
請在此區域輸入程式碼
[/code]

代码执行后,始终不能删掉2.exe.bak;已经搞了几个晚上了。望大大么帮我看看。谢谢。在线等答案。
terry_zhou82
一般會員


發表:8
回覆:22
積分:6
註冊:2012-08-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-08-31 13:31:35 IP:74.125.xxx.xxx 訂閱
也没兄弟知道啊?我现在的问题是,在打开新的程序后,删不了原来的exe.bak文件
terry_zhou82
一般會員


發表:8
回覆:22
積分:6
註冊:2012-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-09-03 13:46:06 IP:116.239.xxx.xxx 訂閱
啊,有大大知道这个问题怎么解决么?急死我了啊。或者采取其他的更新方式
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2012-09-10 14:49:26 IP:202.6.xxx.xxx 未訂閱
沒細想您的程式有何困擾, 可否在
RenameFile('c:\2.exe','c:\2.exe.bak');
之前先判斷 c:\2.exe.bak 是否存在, 若存在先刪除之

這樣看會不會被系統抓住

也才不會對 renamefile 造成錯誤

和您的原程式差別在 先刪 還是 後刪
參考一下囉


------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
terry_zhou82
一般會員


發表:8
回覆:22
積分:6
註冊:2012-08-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2012-09-10 14:58:30 IP:116.239.xxx.xxx 訂閱
更新的过程是在2.exe里面执行的,所以肯定是要先执行改名字的过程。我又不想通过第三方的升级程序来运行。否则倒也没有问题,另外st33chen大大,好久不见了。呵呵呵,最近可好?
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2012-09-11 11:46:39 IP:202.6.xxx.xxx 未訂閱
我的意思是

  1. MyStream.SaveToFile('d:\2.exe');
  2. RenameFile('c:\2.exe','c:\2.exe.bak'); --> 或是 改成 copy , 就不管 2.exe.bak是否存在
  3. copyfile('d:\2.exe','c:\2.exe',false);
  4. DeleteFile('c:\2.exe.bak'); --> 就可以不執行這一句了
  5. deletefile('c:\1.xml') ;
  6. ShowMessage('更新成功,软件将重新启动');
  7. ShellExecute(0, 'open', PChar('c:\2.exe'),nil, nil, SW_SHOWNORMAL);
  8. form1.Close;
換了工作, 改用其他語言, delphi 快忘光了, 猛然想到 ktop, 還好 ktop 還在, 能不能知新不知道, 溫故一下可也.
terry 兄您換帳號了?

------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
terry_zhou82
一般會員


發表:8
回覆:22
積分:6
註冊:2012-08-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2012-09-11 13:01:51 IP:116.239.xxx.xxx 訂閱
呵呵,是的st33chen大大,原来的账户被注销了,只哟重新注册一下了。方法还是不行啊,删不掉原来的文件
terry_zhou82
一般會員


發表:8
回覆:22
積分:6
註冊:2012-08-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2012-09-13 12:38:13 IP:116.239.xxx.xxx 訂閱
自己搞定了,结贴
系統時間:2024-04-24 9:47:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!