VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

完全自動更新程序的方法--Copy(轉貼)

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
goto-dream



註冊時間: 2004-05-11
文章: 909


第 1 樓

發表發表於: 星期六 九月 18, 2004 10:31 am    文章主題: 完全自動更新程序的方法--Copy(轉貼) 引言回覆

完全自動更新程序的方法 yxgzs
http://www.meizibbs.3322.org/bbs/dispbbs.asp?boardID=2&ID=25919


本人以前一直採用兩個文件來更新程序,覺得不是很好,看了一些論壇的介紹感覺都沒達到完全自動的要求,

最近琢磨了一下方法請狐友指正
方法一
首先聲明這個方法我沒用過
使用wininit.ini文件,這個文件的使用方法你可以在網上去搜,不過好像僅對Win9 5 Win98 WinMe有效
這個方法不好的地方是要重新啟動機器,並且不支持長文件名,比如Program Files目錄要寫成Progra~1,最要命

的是假如你在同級目錄中還有一個Programabcd的目錄那你還得判斷是Progra~1還是Progra~2
好處是可以刪除自己
有興趣的狐友可以試試

方法二
思路:利用RUN/N命令調用另外的程序後退出當前程序

1、程序登錄服務部器前加代碼

DO CASE
CASE FILE("新版本文件.EXE") AND FILE("更新程序.EXE") &&主要用於第一次更新失敗後
RUN/N 更新程序.EXE
QUIT
CASE FILE("更新程序.EXE")
INKEY(1,"H")
IF ProcID("更新程序.EXE")=0 &&沒有更新程序.EXE進程
DELETE FILE 更新程序.EXE
ENDIF
ENDCASE

2、程序登錄服務部器後加代碼

IF 有新版本
WAIT "已有新版本,正在下載,請稍候......" WINDOW ;
AT SYSMETRIC(2)/24-6,SYSMETRIC(1)/12-17 NOCLEAR NOWAIT
COPY FILE 更新程序.EXE TO 本地目錄\更新程序.EXE
COPY FILE 新版本文件.EXE TO 本地目錄\新版本文件.EXE
WAIT CLEAR
CD LEFT(SYS(16),LEN(SYS(16))-9)
RUN/N 更新程序.EXE
RETURN
ENDIF


3、寫一個更新程序與新版本文件一起放到服務器上(更新程序要包含檢查進程代碼ProcID)

DEFINE CLASS rsgzup AS form


Height = 60
Width = 300
ShowWindow = 2
DoCreate = .T.
AutoCenter = .T.
Caption = "Form1"
TitleBar = 0
Name = "Form1"


ADD OBJECT label1 AS label WITH ;
FontSize = 11, ;
Caption = "正在更新程序,請稍候......", ;
Height = 16, ;
Left = 12, ;
Top = 21, ;
Width = 240, ;
Name = "Label1"


PROCEDURE Load
SET ECHO OFF
SET TALK OFF
SET ECHO OFF
SET SAFETY OFF
ENDPROC


PROCEDURE Activate
IF !FILE("新版本文件.EXE")
THISFORM.Release
RETURN
ENDIF
FOR I=1 TO 50
INKEY(1,"H")
IF ProcID("老版本文件.EXE")=0
COPY FILE 新版本文件.EXE TO 老版本文件.EXE
DELETE FILE 新版本文件.EXE
RUN/N 老版本文件.EXE
THISFORM.Release
RETURN
ENDIF
ENDFOR
THISFORM.Label1.Caption ="更新程序失敗,按任意鍵退出"
INKEY(0,"H")
THISFORM.Release
ENDPROC


ENDDEFINE


此方法充分利用了RUN/N命令來自動啟動完成更新
在98/2000/XP下通過,你還可以在菜單中加升級檢查

檢查進程代碼(ProcID)

_________________
福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!

想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.

          愛作夢
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
elleryq



註冊時間: 2007-06-21
文章: 768


第 2 樓

發表發表於: 星期日 九月 19, 2004 8:58 am    文章主題: 引言回覆

記得好像之前 Ruey 也有貼過一篇國外網友的作法...
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
goto-dream



註冊時間: 2004-05-11
文章: 909


第 3 樓

發表發表於: 星期一 九月 20, 2004 11:36 am    文章主題: 引言回覆

找到類似的
VFP+SQL 自動更新程式
http://vfp.sunyear.com.tw/viewtopic.php?t=753&start=0&postdays=0&postorder=asc&highlight=%A6%DB%B0%CA%A7%F3%B7s

_________________
福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!

想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.

          愛作夢
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2160


第 4 樓

發表發表於: 星期一 九月 20, 2004 2:02 pm    文章主題: 引言回覆

我也有寫一個自動更新程式,參考看看 ^^
http://vfp.sunyear.com.tw/viewtopic.php?t=1280

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
goto-dream



註冊時間: 2004-05-11
文章: 909


第 5 樓

發表發表於: 星期一 九月 20, 2004 6:13 pm    文章主題: 引言回覆

這也是使用copy的方式

自己推銷自己.真是不錯

_________________
福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!

想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.

          愛作夢
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
goto-dream



註冊時間: 2004-05-11
文章: 909


第 6 樓

發表發表於: 星期日 九月 26, 2004 5:52 pm    文章主題: 引言回覆

elleryq 寫到:
記得好像之前 Ruey 也有貼過一篇國外網友的作法...

這一篇被我找到了!!
直得嘉獎阿

看老外如何發佈新VFP執行文件(轉貼)
http://vfp.sunyear.com.tw/viewtopic.php?t=1126&highlight=scx+prg

_________________
福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!

想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.

          愛作夢
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作