我的学习生涯(Delphi篇) - 11
来源:互联网 发布:网络咨询医生聊天技巧 编辑:程序博客网 时间:2024/04/30 04:05
我们很多时候要和WIN32 API函数打交道。
比如下例中的FileSetAttr、DeleteFile、DateTimeToFileDate
-------------------------------------------------------------------------------------------------美丽分割线---------------------------
年代:2006
文件:MY0601.7z
图1:获取文件版本信息
图2:获得文件属性信息
单元文件:
Unit1.pas
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) btnsetTimeFormat: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button5: TButton; Memo1: TMemo; Button1: TButton; Edit4: TEdit; procedure Button2Click(Sender: TObject); procedure btnsetTimeFormatClick(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; function GetExeFileVersion(FileName:String):String;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button2Click(Sender: TObject);begin DeleteFile(Edit1.Text);end;procedure TForm1.btnsetTimeFormatClick(Sender: TObject);var Err : DWord; P : PChar;begin P := pchar(Edit2.Text); if SetLocaleInfo(LOCALE_USER_DEFAULT,LOCALE_SSHORTDATE,P) then begin Showmessage('OK'); end else begin Err := GetLastError; case Err of ERROR_INVALID_ACCESS : ShowMessage('INVALID_ACCESS'); ERROR_INVALID_FLAGS : showMessage('INVALID_FLAGS'); ERROR_INVALID_PARAMETER : ShowMessage('INVALID_PARAMETER'); end; end;end;procedure TForm1.Button3Click(Sender: TObject);begin FileSetAttr(Edit1.Text,StrToInt(Edit3.Text));end;procedure TForm1.Button4Click(Sender: TObject);var i22:integer;begin i22:=GetFileAttributes(pchar(Edit1.Text)); ShowMessage(IntToStr(i22));end;procedure TForm1.Button5Click(Sender: TObject);var i23:integer;begin i23:=DateTimeToFileDate(Now); Memo1.Lines.Add(IntToStr(i23));end;function GetExeFileVersion(FileName:String):String;var InfoSize,Wnd:DWORD; VerBuf:Pointer; VerInfo:^VS_FIXEDFILEINFO;begin Result:=''; InfoSize:=GetFileVersionInfoSize(PChar(FileName),Wnd); if InfoSize<>0 then begin GetMem(VerBuf,InfoSize); try if GetFileVersionInfo(PChar(FileName),Wnd,InfoSize,VerBuf) then begin VerInfo:=nil; VerQueryValue(VerBuf,'\',Pointer(VerInfo),Wnd); if VerInfo<>nil then Result:=Format('%d.%d.%d.%d',[VerInfo^.dwFileVersionMS shr 16, VerInfo^.dwFileVersionMS and $0000ffff, VerInfo^.dwFileVersionLS shr 16, VerInfo^.dwFileVersionLS and $0000ffff]); end; finally FreeMem(VerBuf,InfoSize); end; end; end;procedure TForm1.Button1Click(Sender: TObject);var verInfo:string;begin verInfo:= GetExeFileVersion(Edit4.Text); ShowMessage(verInfo);end;end.
- 我的学习生涯(Delphi篇) - 11
- 我的学习生涯(Delphi篇) - 完结篇
- 我的学习生涯(Delphi篇) - 00
- 我的学习生涯(Delphi篇) - 01
- 我的学习生涯(Delphi篇) - 02
- 我的学习生涯(Delphi篇) - 03
- 我的学习生涯(Delphi篇) - 04
- 我的学习生涯(Delphi篇) - 05
- 我的学习生涯(Delphi篇) - 06
- 我的学习生涯(Delphi篇) - 07
- 我的学习生涯(Delphi篇) - 08
- 我的学习生涯(Delphi篇) - 09
- 我的学习生涯(Delphi篇) - 10
- 我的学习生涯(Delphi篇) - 12
- 我的学习生涯(Delphi篇) - 13
- 我的学习生涯(Delphi篇) - 14
- 我的学习生涯(Delphi篇) - 15
- 我的学习生涯(Delphi篇) - 16
- 黑马程序员_GUI(布局,Frame,事件监听机制,对话框Dialog,菜单,打开和保存文件)
- WPF:后台获取DataGrid列的绑定字段。
- 离婚,感谢 (转载)
- 写程序作业时发现的一些关于类的成员访问权限神奇的东西
- struts配置问题
- 我的学习生涯(Delphi篇) - 11
- there is no source code available for the current location 解决方案
- linux 文件特殊权限位小结
- C程序的内存分配区域
- RS232
- Unity加载Web资源需求crossdomain.xml文件格式
- 如果我可以设计HTC ONE的相机,我会更前卫。
- MyEclipse 8.5 默认工作空间路径修改
- linux 的普通用户为什么能修改/etc/passwd文件