顯示具有 Win32 API 標籤的文章。 顯示所有文章
顯示具有 Win32 API 標籤的文章。 顯示所有文章

2013/04/01

設定Double click間隔時間

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetDoubleClickTime(1500);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage(IntToStr(GetDoubleClickTime));
end;


資料來源:Get/set the doubleclick time

2013/01/09

取得所有檔案頪型的版本資訊方法

資料來源:DLL file version

function getFileVersionStr( const sgFileName : string ) : string;
var infoSize: DWORD;
var verBuf:   pointer;
var verSize:  UINT;
var wnd:      UINT;
var FixedFileInfo : PVSFixedFileInfo;
begin
  infoSize := GetFileVersioninfoSize(PChar(sgFileName), wnd);

  result := '';

  if infoSize <> 0 then
  begin
    GetMem(verBuf, infoSize);
    try
      if GetFileVersionInfo(PChar(sgFileName), wnd, infoSize, verBuf) then
      begin
        VerQueryValue(verBuf, '\', Pointer(FixedFileInfo), verSize);

        result := IntToStr(FixedFileInfo.dwFileVersionMS div $10000) + '.' +
                  IntToStr(FixedFileInfo.dwFileVersionMS and $0FFFF) + '.' +
                  IntToStr(FixedFileInfo.dwFileVersionLS div $10000) + '.' +
                  IntToStr(FixedFileInfo.dwFileVersionLS and $0FFFF);
      end;
    finally
      FreeMem(verBuf);
    end;
  end;
end;

function getFileVersionInt( const sgFileName : string ) : Integer;
var infoSize: DWORD;
var verBuf:   pointer;
var verSize:  UINT;
var wnd:      UINT;
var FixedFileInfo : PVSFixedFileInfo;
begin
  infoSize := GetFileVersioninfoSize(PChar(sgFileName), wnd);

  result := 0;

  if infoSize <> 0 then
  begin
    GetMem(verBuf, infoSize);
    try
      if GetFileVersionInfo(PChar(sgFileName), wnd, infoSize, verBuf) then
      begin
        VerQueryValue(verBuf, '\', Pointer(FixedFileInfo), verSize);

        result := StrToInt( IntToStr(FixedFileInfo.dwFileVersionMS div $10000) +
                  IntToStr(FixedFileInfo.dwFileVersionMS and $0FFFF) +
                  IntToStr(FixedFileInfo.dwFileVersionLS div $10000) +
                  IntToStr(FixedFileInfo.dwFileVersionLS and $0FFFF) );
      end;
    finally
      FreeMem(verBuf);
    end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowMessage(getFileVersionStr('C:\ABC.EXE'));
  ShowMessage(IntToStr(getFileVersionInt('D:\CDE.DLL')));
end;