计算机二级:Delphi自动获取软件版本信息的类计算机二级考试

文章作者 100test 发表时间 2009:05:07 18:06:38
来源 100Test.Com百考试题网


  2009年下半年全国计算机等级考试你准备好了没?考计算机等级考试的朋友,2009年下半年全国计算机等级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库
  unit untVersion.
  {----------------------------------
  *Description:自动获取应用程序的版本信息
  *Create by: Derry Zhang
  *Create on: 2008-11-26
  -----------------------------------}
  interface
  uses
  Windows, Forms, SysUtils.
  type
  TVersion = class(TObject)
  private
  FCompanyName: string.
  FFileDescription: string.
  FFileVersion: string.
  FInternalName: string.
  FLegalCopyright: string.
  FLegalTradeMarks: string.
  FOriginalFileName: string.
  FProductName: string.
  FProductVersion: string.
  procedure GetCodeVersion.
  public
  constructor Create.
  property CompanyName: string read FCompanyName.
  property FileDescription: string read FFileDescription.
  property FileVersion: string read FFileVersion.
  property InternalName: string read FInternalName.
  property LegalCopyright: string read FLegalCopyright.
  property LegalTradeMarks: string read FLegalTradeMarks.
  property OriginalFileName: string read FOriginalFileName.
  property ProductName: string read FProductName.
  property ProductVersion: string read FProductVersion.
  end.
  implementation
  constructor TVersion.Create.
  begin
  GetCodeVersion.
  inherited.
  end.
  procedure TVersion.GetCodeVersion.
  const
  InfoNum = 9.
  InfoStr: array[1..InfoNum] of string = (
  ProductName,
  ProductVersion,
  FileDescription,
  LegalCopyright,
  FileVersion,
  CompanyName,
  LegalTradeMarks,
  InternalName,
  OriginalFileName
  ).
  var
  S: string.
  BufSize, Len: DWORD.
  Buf: PChar.
  Value: PChar.
  begin
  S := Application.ExeName.
  BufSize := GetFileVersionInfoSize(PChar(S), BufSize).
  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
  FProductName := Value.
  //产品版本
  if VerQueryValue(Buf, PChar(StringFileInfo\080403A8\ InfoStr[2]), Pointer(Value), Len) then
  FProductVersion := Value.
  //文件描述
  if VerQueryValue(Buf, PChar(StringFileInfo\080403A8\ InfoStr[3]), Pointer(Value), Len) then
  FFileDescription := Value.
  //合法商标
  if VerQueryValue(Buf, PChar(StringFileInfo\080403A8\ InfoStr[4]), Pointer(Value), Len) then
  FLegalCopyright := Value.
  //文件版本-“关于”对话框中版本栏应该使用
  if VerQueryValue(Buf, PChar(StringFileInfo\080403A8\ InfoStr[5]), Pointer(Value), Len) then
  FFileVersion := Value.
  //公司名称
  if VerQueryValue(Buf, PChar(StringFileInfo\080403A8\ InfoStr[6]), Pointer(Value), Len) then
  FCompanyName := Value.
  //合法商标
  if VerQueryValue(Buf, PChar(StringFileInfo\080403A8\ InfoStr[7]), Pointer(Value), Len) then
  FLegalTrademarks := Value.
  //内部名称
  if VerQueryValue(Buf, PChar(StringFileInfo\080403A8\ InfoStr[8]), Pointer(Value), Len) then
  FInternalName := Value.
  //原文件名
  if VerQueryValue(Buf, PChar(StringFileInfo\080403A8\ InfoStr[9]), Pointer(Value), Len) then
  FOriginalFilename := Value.
  FreeMem(Buf, BufSize).
  //OperatingSystem.Caption := GetOSVerInfo.
  //SystemMemory.Caption := GetMemStat.
  end
  else
  begin
  Application.MessageBox(获取产品信息时遇到致命错误,请尝试重新启动软件。 #13 若仍未能解决问题,请联系产品服务人员。,错误,MB_OK MB_ICONSTOP).
  end.
  end.

  特别推荐:

  2009年9月全国计算机等级考试时间及科目预告

  2009年上半年全国计算机等级考试参考答案请进入计算机考试论坛

  2009年全国计算机等级考试报名信息汇总

  2009年NCRE考试有新变化

  2009年全国计算机等级考试-大纲

  2009年上半年全国计算机二级考试试题及答案

  2009年上半年全国计算机等级考试试题答案汇总



相关文章


delphi程序恢复ctrl space切换输入法计算机二级考试
计算机二级:Delphi数据网格自动适应宽度计算机二级考试
Delphi6项目迁移到Delph7时最常见问题计算机二级考试
窗体的扩展样式GWL_EXSTYLE:用于SetWindowLong计算机二级考试
计算机二级:Delphi自动获取软件版本信息的类计算机二级考试
计算机二级:DELPHI7安装QuickReport后计算机二级考试
DelphiIDE向导代码竟然有二套ClassType计算机二级考试
计算机二级:为Delphi编写的屏幕保护程序增加描述计算机二级考试
计算机二级:Delphi实现自动发贴和识别验证码计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛