RegistryUnit.pas
上传用户:yjb1804
上传日期:2021-01-30
资源大小:3105k
文件大小:1k
源码类别:

Email服务器

开发平台:

Delphi

  1. unit RegistryUnit;
  2. interface
  3. uses SysUtils, Classes;
  4. type
  5.   ERegistrySampleError = class(Exception);
  6.   procedure GetRegData(out InstallPath, ModData: string);
  7.   function GetRegInstallPath: string;
  8.   function GetRegModData: string;
  9. const
  10.   ABaseKey = 'SoftwareSample Co.SampleApp';
  11. implementation
  12. uses Registry;
  13. procedure GetRegData(out InstallPath, ModData: string);
  14. begin
  15.   InstallPath := GetRegInstallPath;
  16.   ModData := GetRegModData;
  17. end;
  18. function GetRegInstallPath: string;
  19. var
  20.   r: TRegistry;
  21. begin
  22.   r := TRegistry.Create;
  23.   try
  24.     if not r.KeyExists(ABaseKey) then
  25.       raise ERegistrySampleError.Create('App key does not exist.');
  26.     if not r.OpenKey(ABaseKey, false) then
  27.       raise ERegistrySampleError.Create('Cannot open app key.');
  28.     Result := r.ReadString('InstallPath');
  29.     r.CloseKey;
  30.   finally
  31.     r.Free;
  32.   end;
  33. end;
  34. function GetRegModData: string;
  35. var
  36.   r: TRegistry;
  37. begin
  38.   r := TRegistry.Create;
  39.   try
  40.     if not r.KeyExists('ModuleAData') then
  41.       raise ERegistrySampleError.Create('Module key does not exist.');
  42.     if not r.OpenKey('ModuleAData', false) then
  43.       raise ERegistrySampleError.Create('Cannot open module key.');
  44.     Result := r.ReadString('Data');
  45.     r.CloseKey;
  46.   finally
  47.     r.Free;
  48.   end;
  49. end;
  50. end.