在delphi的Project/Options的Version info中有个可以输入的版本号,那么在代码中如何获取这个版本号,比如lbl1.caption := (版本号)
不知道如何实现?
不知道如何实现?
解决方案 »
- TidTcpServer最多能链接多少个客户?
- Delphi 2009中的新语法?有没有谁能帮我解释下。
- listview如何实现换行?在线等待...
- 怎么样将值传递给弹出来的窗体?(变量传变量)
- 我用panel和splitter作了个分割窗口,如何在一PANEL中显示一个指定的FORM,多谢!
- 高分求助解决方案!(现给100,解决后再加100)
- 我只想把ImageList(或Image)中的图片的一部分画到窗体上,应该怎么样做
- 那位老大能不能貼一段 ADODataSet刪除數據庫中當前的記錄的代碼給我??
- 24个不同数据库进行数据采集然后插入到一个中心数据库中的问题。
- 如何多条线程同时处理文件??
- DELPHI调用TOTAL COPY
- 动态多维数组的问题
if BufSize > 0 then
begin
Buf := AllocMem(BufSize);
GetFileVersionInfo(PChar(S), 0, BufSize, Buf);
if VerQueryValue(Buf, PChar('StringFileInfo\080403A8\' + InfoStr[1]), Pointer(Value), Len) then
ProductName.Caption := Value;
if VerQueryValue(Buf, PChar('StringFileInfo\080403A8\' + InfoStr[2]), Pointer(Value), Len) then
ProductVersion.Caption := '产品版本ProductVersion: ' + Value;
if VerQueryValue(Buf, PChar('StringFileInfo\080403A8\' + InfoStr[3]), Pointer(Value), Len) then
FileDescription.Caption := '文件说明FileDescription: ' + Value;
if VerQueryValue(Buf, PChar('StringFileInfo\080403A8\' + InfoStr[4]), Pointer(Value), Len) then
LegalCopyright.Caption := '合法版权LegalCopyright: ' + Value;
if VerQueryValue(Buf, PChar('StringFileInfo\080403A8\' + InfoStr[5]), Pointer(Value), Len) then
FileVersion.Caption := '文件版本FileVersion: ' + Value;
if VerQueryValue(Buf, PChar('StringFileInfo\080403A8\' + InfoStr[6]), Pointer(Value), Len) then
CompanyName.Caption := '公司名称CompanyName: ' + Value;
if VerQueryValue(Buf, PChar('StringFileInfo\080403A8\' + InfoStr[7]), Pointer(Value), Len) then
LegalTrades.Caption := '合法商标LegalTradeMarks: ' + Value;
if VerQueryValue(Buf, PChar('StringFileInfo\080403A8\' + InfoStr[8]), Pointer(Value), Len) then
InternalName.Caption := '内部名称InternalName: ' + Value;
if VerQueryValue(Buf, PChar('StringFileInfo\080403A8\' + InfoStr[9]), Pointer(Value), Len) then
OriginalFilename.Caption := '原文件名OriginalFileName: ' + Value;
FreeMem(Buf, BufSize); //OperatingSystem.Caption := GetOSVerInfo;
//SystemMemory.Caption := GetMemStat;
end
else
begin
Application.Terminate;
end;
var
VerInfoSize: DWORD;
VerInfo: Pointer;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;
begin
Result := '0.0.0.0'; VerInfoSize := GetFileVersionInfoSize(PChar(Application.ExeName), Dummy);
if VerInfoSize = 0 then Exit;
GetMem(VerInfo, VerInfoSize);
GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
with VerValue^ do
begin
dwProductVersionMS := dwFileVersionMS;
dwProductVersionLS := dwFileVersionLS;
Result :=Format('%d.%d.%d.%d', [
dwProductVersionMS shr 16,
dwProductVersionMS and $FFFF,
dwProductVersionLS shr 16,
dwProductVersionLS and $FFFF
]);
end;
end;