United32.pas ( File view )

  • By sathex 2016-03-20
  • View(s):0
  • Download(s):0
  • Point(s): 1
			{
***********************************************
}
{
*          United32.pas for Delphi 4          *
}
{
*  Copyright(C) 1996-1998 by United Software. *
}
{
*             All Rights Reserved             *
}
{
***********************************************
}

Unit United32;

Interface
Uses Windows, SysUtils;

Type
 TFixedVersionInfo = Class
  Private
   bApp: Boolean;
   bDLL: Boolean;
   bDebugBuild: Boolean;
   bPreRelease: Boolean;
   bSpecialBuild: Boolean;
   bPrivateBuild: Boolean;
   wMajorVersion: Word;
   wMinorVersion: Word;
   wRelease: Word;
   wBuild: Word;
  Public
   Constructor Create(FileName: String);
   Destructor Destroy; Override;
   Property App: Boolean Read bApp;
   Property DLL: Boolean Read bDLL;
   Property DebugBuild: Boolean Read bDebugBuild;
   Property PreRelease: Boolean Read bPreRelease;
   Property SpecialBuild: Boolean Read bSpecialBuild;
   Property PrivateBuild: Boolean Read bPrivateBuild;
   Property MajorVersion: Word Read wMajorVersion;
   Property MinorVersion: Word Read wMinorVersion;
   Property Release: Word Read wRelease;
   Property Build: Word Read wBuild;
End;

Type
 TBIOSFixedInfo = Class
  Private
   sBIOSName: ShortString;
   sBIOSCopyright: ShortString;
   sBIOSDate: ShortString;
   sBIOSExtendedInfo: ShortString;
  Public
   Constructor Create;
   Destructor Destroy; Override;
   Property BIOSName: ShortString Read sBIOSName;
   Property BIOSCopyright: ShortString Read sBIOSCopyright;
   Property BIOSDate: ShortString Read sBIOSDate;
   Property BIOSExtendedInfo: ShortString Read sBIOSExtendedInfo;
End;

Type
 ProcessFileFunction = Function(Const FileName: String): Boolean;

{
File version routines
}
Function GetFileVersionFull(FileName: String; Separate: Boolean = False): ShortString;
Function GetFileVersion(FileName: String; Separate: Boolean = False): ShortString;
Function IsDebugBuild(FileName: String): Boolean;
Function IsPreRelease(FileName: String): Boolean;
Function IsSpecialBuild(FileName: String): Boolean;
Function IsPrivateBuild(FileName: String): Boolean;

{
BIOS version routines
}
Function GetBIOSName: ShortString;
Function GetBIOSCopyright: ShortString;
Function GetBIOSExtendedInfo: ShortString;
Function GetBIOSDate: TDateTime;
Function GetBIOSDateString: ShortString;

{
Common routines
}
Function ANSISentenceCase(Const Value: String): String;
Function ANSITitleCase(Const Value: String): String;
Function IsSwitchPresent(Switch: String): Boolean;
Function IntToSepStr(Value: Int64): String;
Function OEMToStr(Const Value: String): String;
Function StrToOEM(Const Value: String): String;
Procedure FlashNotify(Handle: HWND);

{
File routines
}
Function AddSlash(Path: String): String;
Function PathOK(Path: String): Boolean;
Function TruncFileName(Const FileName: String; MaxLength: Integer): String;
Procedure ProcessFiles(AllFilesIfNoWildCard: Boolean; Recursive: Boolean;
                       Path: String; ProcessFile: ProcessFileFunction);

{
System routines
}
Function GetCurrentComputerName: String;
Function GetCurrentUserName: String;
Function GetWinLangName: String;
Function GetColorBits: Integer;
Function GetDiskSerialNumber(Disk: Char): ShortString;

{
Math routines
}
Function NOD(A, B: Int64): Int64; Overload;
Function NOD(Const Args: Array Of Int64): Int64; Overload;
Function NOK(A, B: Int64): Int64; Overload;
Function NOK(Const Args: Array Of Int64): Int64; Overload;

Implementation
Const
 TruncFill = '\...';
 AllMask = '*.*';

Constructor TFixedVersionInfo.Create(FileName: String);
Var
 FI: PVSFixedFileInfo;
 InfoSize, VerSize, Dummy: DWORD;
 VerBuf: Pointer;
Begin
 InfoSize := GetFileVersionInfoSize(PChar(FileName), Dummy);
 If InfoSize <> 0 Then
  Begin
   GetMem(VerBuf, InfoSize);
   Try
    If GetFileVersionInfo(PChar(FileName), Dummy, InfoSize, VerBuf) Then
     If VerQueryValue(VerBuf, '\', Pointer(FI), VerSize) Then
      With FI^ Do
       Begin
        bApp := (dwFileType And VFT_APP) <> 0;
        bDLL := (dwFileType And VFT_DLL) <> 0;
        bDebugBuild := (dwFileFlags And VS_FF_DEBUG) <> 0;
        bPreRelease := (dwFileFlags And VS_FF_PRERELEASE) <> 0;
        bSpecialBuild := (dwFileFlags And VS_FF_SPECIALBUILD) <> 0;
        bPrivateBuild := (dwFileFlags And VS_FF_PRIVATEBUILD) <> 0;
        wMajorVersion := dwFileVersionMS Shr 16;
        wMinorVersion := dwFileVersionMS And $FFFF;
        wRelease := dwFileVersionLS Shr 16;
        wBuild := dwFileVersionLS And $FFFF;
       End;
   Finally
    FreeMem(VerBuf);
   End;
  End;
End;

Destructor TFixedVersionInfo.Destroy;
Begin
 Inherited;
End;

{
File version routines
}
Function GetFileVersionFull(FileName: String; Separate: Boolean = False): ShortString;
Const
 sPreRelease = ' Pre-Release';
 sDebugBuild = ' Debug';
 sSpecialBuild = ' Special';
 sPrivateBuild = ' Private';
Var
 bDBuild, bPRelease, bSBuild, bPBuild: Boolean;
 TempString: String;
Begin
 Result := GetFileVersion(FileName, Separate);
 bPRelease := IsPreRelease(FileName);
 bDBuild := IsDebugBuild(FileName);
 bSBuild := IsSpecialBuild(FileName);
 bPBuild := IsPrivateBuild(FileName);
 If bDBuild Or bPRelease Or bSBuild Or bPBuild Then
  Begin
   Result := Result + ' (';
   TempString := '';
   If bPRelease Then TempString := TempString + sPreRelease;
   If bDBuild Then TempString := TempString + sDebugBuild;
   If bSBuild Then TempString := TempString + sSpecialBuild;
   If bPBuild Then TempString := TempString + sPrivateBuild;
    Result := Result + Trim(TempString);
   If Not Separate Then
    Result := Result + ' build)' Else
    Result := Result + ')';
  End;
End;

Function GetFileVersion(FileName: String; Separate: Boolean = False): ShortString;
Var
 FixedVersionInfo: TFixedVersionInfo;
 FormatString: String;
Begin
 Result := '';
 FixedVersionInfo := TFixedVersionInfo.Create(FileName);
 Try
  If Not Separate Then
   FormatString := '%d.%d.%d.%d' Else
   FormatString := '%d.%d (Build %d.%d)';
  With FixedVersionInfo Do
   Result := Format(FormatString, [MajorVersion, MinorVersion,
                                   Release, Build]);
 Finally
  FixedVersionInfo.Free;
 End;
End;

Function IsDebugBuild(FileName: String): Boolean;
Var
 FixedVersionInfo: TFixedVersionInfo;
Begin
 FixedVersionInfo := TFixedVersionInfo.Create(FileName);
 Try
  Result := FixedVersionInfo.DebugBuild;
 Finally
  FixedVersionInfo.Free;
 End;
End;

Function IsPreRelease(FileName: String): Boolean;
Var
 FixedVersionInfo: TFixedVersionInfo;
Begin
 FixedVersionInfo := TFixedVersionInfo.Create(FileName);
 Try
  Result := FixedVersionInfo.PreRelease;
 Finally
  FixedVersionInfo.Free;
 End;
End;

Function IsSpecialBuild(FileName: String): Boolean;
Var
 FixedVersionInfo: TFixedVersionInfo;
Begin
 FixedVersionInfo := TFixedVersionInfo.Create(FileName);
 Try
  Result := FixedVersionInfo.SpecialBuild;
 Finally
  FixedVersionInfo.Free;
 End;
End;

Function IsPrivateBuild(FileName: String): Boolean;
Var
 FixedVersionInfo: TFixedVersionInfo;
Begin
 FixedVersionInfo := TFixedVersionInfo.Create(FileName);
 Try
  Result := FixedVersionInfo.PrivateBuild;
 Finally
  FixedVersionInfo.Free;
 End;
End;

Constructor TBIOSFixedInfo.Create;
Begin
 sBIOSName := String(PChar(Ptr($FE061)));
 sBIOSCopyright := String(PChar(Ptr($FE091)));
 sBIOSDate := String(PChar(Ptr($FFFF5)));
 sBIOSExtendedInfo := String(PChar(Ptr($FEC71)));
End;

Destructor TBIOSFixedInfo.Destroy;
Begin
 Inherited;
End;

{
BIOS version routines
}
Function GetBIOSName: ShortString;
Var
 BIOSFixedInfo: TBIOSFixedInfo;
Begin
 BIOSFixedInfo := TBIOSFixedInfo.Create;
 Try
  Result := BIOSFixedInfo.BIOSName;
 Finally
  BIOSFixedInfo.Free;
 End;
End;

Function GetBIOSCopyright: ShortString;
Var
 BIOSFixedInfo: TBIOSFixedInfo;
Begin
 BIOSFixedInfo := TBIOSFixedInfo.Create;
 Try
  Result := BIOSFixedInfo.BIOSCopyright;
 Finally
  BIOSFixedInfo.Free;
 End;
End;

Function GetBIOSExtendedInfo: ShortString;
Var
 BIOSFixedInfo: TBIOSFixedInfo;
Begin
 BIOSFixedInfo := TBIOSFixedInfo.Create;
 Try
  Result := BIOSFixedInfo.BIOSExtendedInfo;
 Finally
  BIOSFixedInfo.Free;
 End;
End;

Function GetBIOSDate: TDateTime;
Var
 OldShortDateFormat: String;
 OldDateSeparator: Char;
 BIOSFixedInfo: TBIOSFixedInfo;
Begin
 BIOSFixedInfo := TBIOSFixedInfo.Create;
 OldShortDateFormat := ShortDateFormat;
 OldDateSeparator := DateSeparator;
 Try
  DateSeparator := '/';
  ShortDateFormat := 'm' + DateSeparator + 'd' + DateSeparator + 'y';
  Result := StrToDate(BIOSFixedInfo.BIOSDate);
 Finally
  BIOSFixedInfo.Free;
  ShortDateFormat := OldShortDateFormat;
  DateSeparator := OldDateSeparator;
 End;
End;

Function GetBIOSDateString: ShortString;
Begin
 Result := DateToStr(GetBIOSDate);
End;

{
Common routines
}
Function ANSISentenceCase(Const Value: String): String;
Var
 I: Integer;
Begin
 Result := ANSILowerCase(Value);
 I := 1;
 While Result[I] = ' ' Do
  Begin
   Inc(I);
  End;
 Result[I] := ANSIUpperCase(Result[I])[1];
End;

Function ANSITitleCase(Const Value: String): String;
Var
 I: Integer;
Begin
 Result := ANSILowerCase(Value);
 I := 0;
 Repeat
  Inc(I);
  If (Result[I] = ' ') Then Continue;
  Result[I] := ANSIUpperCase(Result[I])[1];
  While Result[I] <> ' ' Do
   Begin
    Inc(I);
    If I = Length(Result) Then Break;
   End;
 Until I = Length(Result);
End;

Function IsSwitchPresent(Switch: String): Boolean;
Var
 I: Integer;
Begin
 Result := False;
 Switch := ANSIUpperCase(Switch);
 For I := 1 To ParamC
...
...
(Please download the complete source code to view)
			
...
Expand> <Close

Want complete source code? Download it here

Point(s): 1

Download
0 lines left, continue to read
Sponsored links

File list

Tips: You can preview the content of files by clicking file names^_^
Name Size Date
About.rtf20.49 kB2005-03-15|17:16
changelog.txt4.26 kB2005-03-15|17:16
clean.bat92.00 B2005-01-05|02:35
DVBCore.pas31.98 kB2004-12-17|23:45
frmPPVInfo.dfm15.69 kB2004-12-19|19:54
frmPPVInfo.pas6.17 kB2005-03-03|01:02
01.96 kB
About.bmp3.05 kB2004-12-17|23:52
About.ico2.40 kB2004-12-17|23:52
Add.bmp1.30 kB2004-12-17|23:52
bluenote.ico7.23 kB2004-12-17|23:52
bug.jpg6.04 kB2005-01-05|02:35
CAM.ico2.40 kB2004-12-17|23:52
Close.bmp3.05 kB2004-12-17|23:52
EPG.bmp1.05 kB2005-01-05|21:10
EPG.ico1.37 kB2004-12-17|23:52
EPGOFF.bmp1.62 kB2004-12-17|23:52
EPGON.bmp1.62 kB2004-12-17|23:52
EPG_Gliph.bmp3.43 kB2004-12-17|23:52
Event.ico1.37 kB2004-12-17|23:52
jetons.ico1.37 kB2004-12-17|23:52
leftLogo.bmp9.96 kB2004-12-17|23:52
logger.ico1.68 kB2004-12-17|23:52
MagicWand.bmp1.30 kB2004-12-17|23:52
MagicWand.ico1.37 kB2004-12-17|23:52
MAS.ico1.37 kB2004-12-17|23:52
MENOS.ico1.37 kB2004-12-17|23:52
nemesis.ico4.19 kB2004-12-17|23:52
Phoenix.ico1.72 kB2004-12-17|23:52
Provider.ico1.37 kB2004-12-17|23:52
Remove.bmp1.30 kB2004-12-17|23:52
Reset.bmp3.05 kB2004-12-17|23:52
Restart.bmp1.30 kB2004-12-17|23:52
Save.bmp2.05 kB2004-12-17|23:52
scriptengine.ico7.23 kB2004-12-17|23:52
ScriptsEngine.bmp6.80 kB2004-12-17|23:52
Tools.bmp246.00 B2004-12-17|23:52
tuxprogramming.jpg4.15 kB2005-01-13|19:01
V9Card.jpg11.00 kB2005-03-03|01:02
IFSI_IniFiles.pas10.45 kB2004-12-19|19:54
MpgLib.DLL141.50 kB2004-12-24|17:03
PMCAM0.00 B2005-03-15|17:18
PMCAM4.67 kB2005-01-05|17:24
PMCAM4.69 kB2005-01-05|17:24
PMCAM4.52 kB2005-01-05|17:24
PMCAM.rc3.60 kB2004-12-17|23:47
PMCAM2.dpr6.30 kB2005-03-11|20:15
PMCAM2.res1.70 kB2005-03-15|17:16
PMCAM2StandAlone.dpr1.19 kB2005-03-03|01:02
PMCAM2StandAlone.res4.95 kB2005-03-11|20:15
PMCAMMenu.rc259.00 B2004-12-26|20:10
PMCAMMenu.RES162.25 kB2005-03-15|17:16
rUPClickSplitter.res740.00 B2004-12-19|19:54
santa_rock.jpg5.65 kB2004-12-24|17:59
UBitManager.pas4.18 kB2004-12-17|23:45
uDecode123.pas4.01 kB2004-12-29|01:33
UDVBConditionalAccessSystemNames.pas1.49 kB2004-12-17|23:45
UDVBCoreToMD.pas4.59 kB2004-12-17|23:45
UDVBPIDNames.pas1.23 kB2004-12-17|23:45
UDVBTablesHolder.pas2.68 kB2004-12-28|02:17
UEPGEntry.pas3.29 kB2004-12-17|23:45
UEPGMHW.dfm7.72 kB2005-01-11|02:38
UEPGMHW.pas40.85 kB2005-01-11|02:38
UfrmAddFilter.dfm6.86 kB2004-12-17|23:46
UfrmAddFilter.pas3.68 kB2004-12-17|23:45
UfrmCAM.dfm217.00 kB2005-03-15|03:22
UfrmCAM.pas159.37 kB2005-03-15|17:16
ufrmDLLForm.dfm420.00 B2004-12-19|19:54
ufrmDLLForm.pas1.87 kB2004-12-26|20:10
UfrmEMM.dfm1.28 kB2004-12-17|23:46
UfrmEMM.pas1.47 kB2004-12-17|23:45
UfrmEPGAdvanced.dfm7.01 kB2005-01-05|21:10
UfrmEPGAdvanced.pas2.56 kB2005-01-05|21:10
UfrmMHWEPGEntries.dfm3.81 kB2004-12-17|23:46
UfrmMHWEPGEntries.pas4.33 kB2004-12-17|23:45
ufrmMHWRadio.dfm35.85 kB2005-01-21|18:53
ufrmMHWRadio.pas37.84 kB2005-01-21|18:53
UfrmPMTDetails.dfm2.31 kB2005-01-21|18:53
UfrmPMTDetails.pas2.74 kB2005-01-21|18:53
UfrmWarningOnExit.dfm15.64 kB2005-01-05|21:10
UfrmWarningOnExit.pas1.44 kB2005-01-05|21:10
ULogEngine.pas15.89 kB2005-03-12|17:11
UMDDefs.pas4.07 kB2005-03-03|01:02
UMD_Impl.pas11.26 kB2005-03-03|01:02
United32.pas14.20 kB2004-12-17|23:45
UnitISO639_3.pas10.04 kB2005-03-03|01:02
UnitMDInterface.pas28.92 kB2005-03-15|03:22
UnitTimer.pas1.39 kB2004-12-17|23:45
Unit_CRC32.pas3.62 kB2004-12-17|23:45
uPESToTS.pas6.11 kB2005-03-03|01:02
UScriptFunctions.pas2.97 kB2005-01-03|16:45
UScriptsEditor.dfm58.10 kB2005-01-21|18:53
UScriptsEditor.pas22.02 kB2005-03-03|01:02
USECAManager.pas18.26 kB2005-03-03|01:02
USECATableStore.pas12.92 kB2004-12-17|23:45
USECA_EMM.pas7.74 kB2005-03-12|03:36
USmartCardISO.pas14.45 kB2004-12-17|23:45
UTfrmMultiDec.dfm407.00 B2005-01-21|18:53
UTfrmMultiDec.pas4.38 kB2005-01-21|18:53
UTranslate.pas6.49 kB2004-12-24|17:03
UTS184ToBitFilter.pas36.28 kB2005-03-11|20:15
uUPClickSplitter.dcr488.00 B2004-12-19|19:54
uUPClickSplitter.dcu18.09 kB2005-03-03|01:02
uUPClickSplitter.pas20.43 kB2004-12-26|20:10
PMCAM2_2.50.zip870.87 kB2016-03-19|22:08
...
Sponsored links

United32.pas (1.30 MB)

Need 1 point
Your Point(s)

Your Point isn't enough.

Get point immediately by PayPal

More(Debit card / Credit card / PayPal Credit / Online Banking)

Submit your source codes. Get more point

LOGIN

Don't have an account? Register now
Need any help?
Mail to: support@codeforge.com

切换到中文版?

CodeForge Chinese Version
CodeForge English Version

Where are you going?

^_^"Oops ...

Sorry!This guy is mysterious, its blog hasn't been opened, try another, please!
OK

Warm tip!

CodeForge to FavoriteFavorite by Ctrl+D