為什麼取個程式版本號這麼累? |
答題得分者是:max5020
|
TyroneYeh
一般會員 發表:5 回覆:12 積分:3 註冊:2006-09-27 發送簡訊給我 |
http://www.esanu.name/delphi/Win API/Version Info in Delphi.html
找到一篇可以取檔案版本的程式碼? 在想說為什麼不能 Application.ProductVerion 就好, 一定要讀自己程式的資訊再呈現呢!! 這樣怎麼感覺好累!! 還是有別的方法可以讀到本身程式定義在 Options 中的版本號呢? 謝謝
------
線上發票登錄自動對獎管理 http://siryeh.com -- Best Respects, TyroneYeh |
max5020
資深會員 發表:30 回覆:277 積分:321 註冊:2003-06-04 發送簡訊給我 |
不累, 不累, 給你一個Function就不累啦!!
[code delphi] // Get Version Number function GetVersion: string; var VerInfoSize: DWORD; VerInfo: Pointer; VerValueSize: DWORD; VerValue: PVSFixedFileInfo; Dummy: DWORD; begin VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy); GetMem(VerInfo, VerInfoSize); GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo); VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize); with VerValue^ do begin Result := IntToStr(dwFileVersionMS shr 16); Result := Result '.' IntToStr(dwFileVersionMS and $FFFF); Result := Result '.' IntToStr(dwFileVersionLS shr 16); Result := Result '.' IntToStr(dwFileVersionLS and $FFFF); end; FreeMem(VerInfo, VerInfoSize); end;[/code] |
TyroneYeh
一般會員 發表:5 回覆:12 積分:3 註冊:2006-09-27 發送簡訊給我 |
錯在這行耶 ~~ 這 Function 可以用在 Delphi 2009 嗎?
[code delphi] VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize); [/code] First chance exception at $77C842EB. Exception class EAccessViolation with message 'Access violation at address 756F178F in module 'version.dll'. Read of address 00000004'
------
線上發票登錄自動對獎管理 http://siryeh.com -- Best Respects, TyroneYeh
編輯記錄
TyroneYeh 重新編輯於 2009-06-25 00:08:05, 註解 無‧
|
max5020
資深會員 發表:30 回覆:277 積分:321 註冊:2003-06-04 發送簡訊給我 |
|
TyroneYeh
一般會員 發表:5 回覆:12 積分:3 註冊:2006-09-27 發送簡訊給我 |
有 uses Windows
但怪的是我找了一下資料用 http://www.techtricks.com/delphi/getversion.php 用這個就可以正常取得 看起來好像差不多!! 不過 Delphi 2009 中有一個 Cardinal GetVersion() 的 function 但不知怎麼用耶!! 未自定 GetVersion 時就內建的!! 謝謝 -- 但這樣也是有點累!哩!!
------
線上發票登錄自動對獎管理 http://siryeh.com -- Best Respects, TyroneYeh |
max5020
資深會員 發表:30 回覆:277 積分:321 註冊:2003-06-04 發送簡訊給我 |
|
jackiemi2_seed
中階會員 發表:37 回覆:97 積分:76 註冊:2006-09-11 發送簡訊給我 |
Delphi 7.0
compile成功,執行時有如下之錯誤訊息 Access violation at address 777E1725 in module \version.dll'. Read of adress 00000004 和delphi 2009有點類似, 但Delphi 7.0 project新增時就已uses Windows了 有用Delphi 7.0測試成功的嗎?? thanks 改用TyroneYeh兄提供的網頁裡的程式就可以了說
------
OS : Win 7 pro Program : Delphi 7 DataBase : Ms Sql 2008
編輯記錄
jackiemi2_seed 重新編輯於 2009-06-26 14:47:14, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |