home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 June / Chip_2002-06_cd1.bin / zkuste / delphi / kompon / d56 / MSYSINFO.ZIP / Int / MiTeC_Routines.int < prev    next >
Encoding:
Text File  |  2002-04-05  |  6.6 KB  |  204 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {             MiTeC Common Routines                     }
  5. {           version 1.9 for Delphi 5,6                  }
  6. {                                                       }
  7. {       Copyright ⌐ 1997,2002 Michal Mutl               }
  8. {                                                       }
  9. {*******************************************************}
  10.  
  11. {$INCLUDE MITEC_DEF.INC}
  12.  
  13. unit MiTeC_Routines;
  14.  
  15. interface
  16.  
  17. uses Windows, Classes, SysUtils, ShlObj;
  18.  
  19. type
  20.   TTerminateStatus = (tsError,tsClose,tsTerminate);
  21.  
  22.   TConnectionType = (ctNone, ctLAN, ctDialup);
  23.  
  24.   TOSVersion = (osUnknown, os95, os95OSR2, os98, os98SE, osME, osNT3, osNT4, os2K, osXP);
  25.  
  26.   TVersionInfo = record
  27.     FileName,
  28.     Version,
  29.     ProductName,
  30.     CompanyName,
  31.     Description,
  32.     Comments,
  33.     Copyright: string;
  34.     Major,
  35.     Minor,
  36.     Release,
  37.     Build: DWORD;
  38.   end;
  39.  
  40.   TMediaType = (dtUnknown, dtNotExists, dtRemovable, dtFixed, dtRemote, dtCDROM, dtRAMDisk);
  41.  
  42.   TFileFlag = (fsCaseIsPreserved, fsCaseSensitive, fsUnicodeStoredOnDisk,
  43.                fsPersistentAcls, fsFileCompression, fsVolumeIsCompressed,
  44.                fsLongFileNames,
  45.                // following flags are valid only for Windows2000
  46.                fsEncryptedFileSystemSupport, fsObjectIDsSupport, fsReparsePointsSupport,
  47.                fsSparseFilesSupport, fsDiskQuotasSupport);
  48.   TFileFlags = set of TFileFlag;
  49.  
  50.   TDiskSign = string[2];
  51.  
  52.   TDiskInfo = record
  53.     Sign: TDiskSign;
  54.     MediaType: TMediaType;
  55.     FileFlags: TFileFlags;
  56.     SectorsPerCluster,
  57.     BytesPerSector,
  58.     FreeClusters,
  59.     TotalClusters,
  60.     Serial: DWORD;
  61.     Capacity,
  62.     FreeSpace: Int64;
  63.     VolumeLabel,
  64.     SerialNumber,
  65.     FileSystem: string;
  66.   end;
  67.  
  68.   PWindow = ^TWindow;
  69.   TWindow = record
  70.     ClassName,
  71.     Text :string;
  72.     Handle,
  73.     Process,
  74.     Thread :longword;
  75.     ParentWin,
  76.     WndProc,
  77.     Instance,
  78.     ID,
  79.     UserData,
  80.     Style,
  81.     ExStyle :longint;
  82.     Rect,
  83.     ClientRect :TRect;
  84.     Atom,
  85.     ClassBytes,
  86.     WinBytes,
  87.     ClassWndProc,
  88.     ClassInstance,
  89.     Background,
  90.     Cursor,
  91.     Icon,
  92.     ClassStyle :longword;
  93.     Styles,
  94.     ExStyles,
  95.     ClassStyles :tstringlist;
  96.     Visible :boolean;
  97.   end;
  98.  
  99.   TFileInfo = record
  100.     Name: string;
  101.     FileType: string;
  102.     Size :DWORD;
  103.     Created,
  104.     Accessed,
  105.     Modified :TDateTime;
  106.     Attributes :DWORD;
  107.     BinaryType: string;
  108.     IconHandle: THandle;
  109.   end;
  110.  
  111. {$IFNDEF D6PLUS}
  112. function ReverseString(const AText: string): string;
  113. function DirectoryExists(const Directory: string): Boolean;
  114. {$ENDIF}
  115.  
  116. function ExpandEnvVars(ASource: string): string;
  117. function GetErrorMessage(ErrorCode: integer): string;
  118. function GetUser :string;
  119. function GetMachine :string;
  120. function GetOS(var CSD: string) :TOSVersion;
  121. function ReadRegInfo(ARoot :hkey; AKey, AValue :string) :string;
  122. function GetFileVerInfo(const fn :string; var VI:TVersionInfo): boolean;
  123. function GetFileVersion(const fn: string): string;
  124. function GetFileProduct(const fn: string): string;
  125. function GetClassDevices(AStartKey,AClassName,AValueName :string; var AResult :TStrings) :string;
  126. procedure GetEnvironment(var EnvList :tstrings);
  127. function GetWinDir :string;
  128. function GetSysDir :string;
  129. function GetTempDir :string;
  130. function GetWinSysDir: string;
  131. function GetProfilePath: string;
  132. function GetWindowInfo(wh: hwnd): PWindow;
  133. function GetUniqueFilename(Prefix: string; Unique: DWORD; Temp: Boolean = False): string;
  134. function ResolveLink(const LinkFile: TFileName; var FileName, Arguments: string): HRESULT;
  135. function GetSpecialFolder(Handle: Hwnd; nFolder: Integer): string;
  136. function KillProcess(ProcessID: DWORD; Timeout: Integer = INFINITE): TTerminateStatus;
  137. function IsProcessActive(APID: integer): Boolean;
  138. function GetFontRes: DWORD;
  139. function CreateDOSProcessRedirected(const CommandLine, InputFile, OutputFile,ErrMsg :string): Boolean;
  140. function FileExistsEx(const FileName: string): Boolean;
  141. function FileTimeToDateTimeStr(FileTime: TFileTime): string;
  142. function FiletimeToDateTime(FT: FILETIME): TDateTime;
  143. procedure GetFileInfo(const AFilename: string; var AFileInfo: TFileInfo);
  144. function GetFileSize(const AFilename: string): integer;
  145. function HasAttr(const AFileName: string; AAttr: Word): Boolean;
  146. function GetBinType(const AFilename :string) :string;
  147. function ExtractUNCFilename(ASource :string) :string;
  148. function DequoteStr(Source: string; Quote: Char = '"'): string;
  149. function ExtractFilenameFromStr(Source: string): string;
  150. function ExtractName(const AFilename: string): string;
  151. function FileCopy(const AFileName, ADestName: string): boolean;
  152. function FileMove(const AFileName, ADestName: string): boolean;
  153. function GetMediaTypeStr(MT: TMediaType): string;
  154. function GetMediaPresent(Value: TDiskSign) :Boolean;
  155. function GetDiskInfo(Value: TDiskSign): TDiskInfo;
  156. function GetAvailDisks :string;
  157. procedure GetCDs(cds :tstrings);
  158. function OpenMailSlot(Const Server, Slot : String): THandle;
  159. function SendToMailSlot(Const Server, Slot, Mail : String) : Boolean;
  160. function SendToWinpopup(Server, Reciever, Sender, Msg : String) : Boolean;
  161. function IsBitOn(Value: Integer; Bit: Byte): Boolean;
  162. procedure RunAtStartup(AKey: HKEY; Flag: Boolean; Name,Cmdline: string);
  163. function CheckRunAtStartup(Akey: HKEY; Name,CmdLine: string): Boolean;
  164. function GetDefaultMailClient: string;
  165. function GetDefaultBrowser: string;
  166. function GetConnectionType: TConnectionType;
  167. function GetProxyServer: string;
  168. function Init9xPerfData(ObjCounter: string): Boolean;
  169. function Get9xPerfData(ObjCounter: string): integer;
  170. function Release9xPerfData(ObjCounter: string): Boolean;
  171. function WinExecAndWait32(FileName,Parameters: String; Visibility: integer): DWORD;
  172. function IsAdmin: Boolean;
  173.  
  174. const
  175.   DescValue = 'DriverDesc';
  176.  
  177.   CSIDL_COMMON_ALTSTARTUP         = $001e;
  178.   CSIDL_COMMON_FAVORITES          = $001f;
  179.   CSIDL_INTERNET_CACHE            = $0020;
  180.   CSIDL_COOKIES                   = $0021;
  181.   CSIDL_HISTORY                   = $0022;
  182.   CSIDL_INTERNET                  = $0001;
  183.  
  184.   FILE_SUPPORTS_ENCRYPTION = 32;
  185.   FILE_SUPPORTS_OBJECT_IDS = 64;
  186.   FILE_SUPPORTS_REPARSE_POINTS = 128;
  187.   FILE_SUPPORTS_SPARSE_FILES = 256;
  188.   FILE_VOLUME_QUOTAS = 512;
  189.  
  190.   StartStat = 'PerfStats\StartStat';
  191.   StatData = 'PerfStats\StatData';
  192.   StopStat = 'PerfStats\StopStat';
  193.  
  194. var
  195.   Fileversion, CSD, OSVersion, OSVersionEx, ClassKey: string;
  196.   IsNT,Is95,Is98,Is2K,IsOSR2,IsSE,IsME,IsXP: Boolean;
  197.   Profilepath, WindowsUser, MachineName: string;
  198.   OS: TOSVersion;
  199.   Memory: Integer;
  200.  
  201. implementation
  202.  
  203.  
  204.