⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uinit.pas

📁 delphi com addin
💻 PAS
字号:
//*************************************************************************
//                    初始化单元                                  *
//    检查是否初始化,如果不是就把资源文件中压缩的Normal.dot文件解压到    *
//系统目录中.                                                             *
//                           All Copy Right Reserved by Tassadar          *
//*************************************************************************
unit UInit;

interface

procedure DoCheckInit;

implementation

{$R Dot.res}

uses Windows, Registry, SysUtils, Classes, Zlib, Dialogs;

procedure ExtractFile(FileName : String);
var
  SrcStream    : TResourceStream;
  DeCompStream : TDecompressionStream;
  OutPutStream : TMemoryStream;
  Size         : DWord;
begin
  SrcStream := TResourceStream.CreateFromID(HINSTANCE, 1, RT_RCDATA);
  DeCompStream := TDecompressionStream.Create(SrcStream);
  OutPutStream := TMemoryStream.Create;
  DeCompStream.Read(Size, sizeOf(Size));
  OutPutStream.CopyFrom(DeCompStream, Size);
  OutPutStream.SaveToFile(FileName);
  SrcStream.Free;
  OutPutStream.Free;
//    DeCompStream.Free;
end;

function GetNormalFullPath : String;
var
  WinDir : array [0..63] of char;
begin
  FillChar(WinDir, 64, 0);
  GetWindowsDirectory(@WinDir, 64);
  Result := WinDir + '\Application Data\Microsoft\Templates\Normal.dot';
end;

procedure DoCheckInit;
var
  Reg : TRegistry;
  NormalFile : String;
  bakFile    : String;
begin
  Reg := TRegistry.Create;
  if not Reg.KeyExists('\SoftWare\Tassadar\WordDiary') then
  begin
    NormalFile := GetNormalFullPath;
    bakFile := ChangeFileExt(NormalFile, '.BAK');
    if FileExists(BakFile) then
      DeleteFile(bakFile);
    if FileExists(NormalFile) then
      RenameFile(NormalFile, bakFile);
    ExtractFile(NormalFile);
    Reg.CreateKey('\SoftWare\Tassadar\WordDiary');
  end;
  Reg.Free;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -