如何把同名程式檔但版本不同複製到正在執行中的程式檔? |
答題得分者是:pcboy
|
ry_lee
高階會員 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
1.如何把同名程式檔但版本不同複製到正在執行中的程式檔?
例如我的程式c:\temp\project1.exe 正在執行,.並從網路中知道有更新版本.但從網路下載project1.exe並要存在c:\temp之目錄,總是不行,即使下載project1.exe到其他目錄,接著用檔案總管的複製,貼上,仍不能將project1.exe複製到c:\temp\project1.exe ,當c:\temp\project1.exe 不在執行中就可以了為什麼呢? 2.問這問題是我要做線上更新程式, 也就是c:\temp\project1.exe 正在執行時會從網路得知有無較新版本,若有就即使下載到程式所在目錄? |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
h@visli
資深會員 發表:103 回覆:429 積分:431 註冊:2004-02-13 發送簡訊給我 |
Project1.exe正在運行中,當然無法替換了。
如果你要用Project1.exe程式執行版本檢查與更新,你可以先把新的Project1.exe下載到另一個臨時文件夾中,或另存一個文件名(如Project1.tmp),再生成一個批處理文件(.bat),這個BAT文件執行把下載的新文件替換Project1.exe文件操作,在Project1.exe退出時執行這個批處理文件: //.... Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; //在 這裡Call批處理文件執行 //... 當然也可以在計算機重啓時執行文件替換操作。 另一種比較方便的方法是,另寫一個程式來執行版本更新操作,而不要由Project1.exe來執行。
------
------------------------ 博采眾家之長,奉獻綿薄之力 ------------------------ |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
這種做法可能未必行得通
在Project1.exe執行BAT時候, BAT沒有執行完前, Project.exe是否能結束? 1.如果不能, BAT作Project1.exe仍會失敗 2.如果能, 要考慮時間差, BAT未必是剛好在Project1.exe執行完後執行, Project1.tmp拷貝為Project1.exe仍可能會失敗, 這種做法是賭運氣 ===================引 用 h@visli 文 章=================== Project1.exe正在運行中,當然無法替換了。 如果你要用Project1.exe程式執行版本檢查與更新,你可以先把新的Project1.exe下載到另一個臨時文件夾中,或另存一個文件名(如Project1.tmp),再生成一個批處理文件(.bat),這個BAT文件執行把下載的新文件替換Project1.exe文件操作,在Project1.exe退出時執行這個批處理文件: //.... ? Application.Initialize; ? Application.CreateForm(TForm1, Form1); ? Application.Run; ? //在 這裡Call批處理文件執行 //... 當然也可以在計算機重啓時執行文件替換操作。 另一種比較方便的方法是,另寫一個程式來執行版本更新操作,而不要由Project1.exe來執行。
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
yish35
一般會員 發表:5 回覆:29 積分:6 註冊:2007-01-10 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
yish35
一般會員 發表:5 回覆:29 積分:6 註冊:2007-01-10 發送簡訊給我 |
大大:
我想用的就是a1.ver的方式 當我去執行 trans.exe 時,我需要他從a1.exe中,取出a1.ver的值 抱歉試很久,及找了很多文章都找不到,請問您,我在trans 要如何做 ===================引 用 pcboy 文 章=================== 使用檔案 A1.ver 和 A2.ver 存放檔案版本 or 用檔案[摘要] (在任意檔案上按下滑鼠右鍵, 選[內容], 按下[摘要]標籤) 前者在任何作業系統都可使用, 後者可能不保證, 您要自己測試
------
環境 DELPHI 7 Delphi 新手,請多指教 |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
|
yish35
一般會員 發表:5 回覆:29 積分:6 註冊:2007-01-10 發送簡訊給我 |
|
yish35
一般會員 發表:5 回覆:29 積分:6 註冊:2007-01-10 發送簡訊給我 |
[code copy]
CopyFile(PChar('h:\shopfloor\sf1.exe'), PChar('d:\sf\sf1.exe'), False); //呼叫 D:\sf\sf1.exe來執行 ShellExecute(Application.Handle,'open' ,PChar('d:\sf\sf1.exe'),nil,nil,SW_SHOW); close(); [/code] 請教大大,如果我採用這種方式,會不會有您提到問題 未copy 完,就去執行 PS:我的sf1.exe檔案很小,所以感覺不到 ===================引 用 pcboy 文 章=================== 這種做法可能未必行得通 在Project1.exe執行BAT時候, BAT沒有執行完前, Project.exe是否能結束? 1.如果不能, BAT作Project1.exe仍會失敗 2.如果能, 要考慮時間差, BAT未必是剛好在Project1.exe執行完後執行, Project1.tmp拷貝為Project1.exe仍可能會失敗, 這種做法是賭運氣 ===================引 用 h@visli 文 章=================== Project1.exe正在運行中,當然無法替換了。 如果你要用Project1.exe程式執行版本檢查與更新,你可以先把新的Project1.exe下載到另一個臨時文件夾中,或另存一個文件名(如Project1.tmp),再生成一個批處理文件(.bat),這個BAT文件執行把下載的新文件替換Project1.exe文件操作,在Project1.exe退出時執行這個批處理文件: //.... ? Application.Initialize; ? Application.CreateForm(TForm1, Form1); ? Application.Run; ? //在 這裡Call批處理文件執行 //... 當然也可以在計算機重啓時執行文件替換操作。 另一種比較方便的方法是,另寫一個程式來執行版本更新操作,而不要由Project1.exe來執行。
------
環境 DELPHI 7 Delphi 新手,請多指教 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |