atxshellextension.pas

来自「支持版本:Delphi 5-2009, C++Builder 5-2009 A」· PAS 代码 · 共 48 行

PAS
48
字号
unit ATxShellExtension;

interface

function ApplyShellExtension(AEnable: boolean): boolean;
function IsShellExtensionEnabled: boolean;


implementation

uses
  Windows, ATxSProc, ATxParamStr, ATxRegistry;

const
  RegKey0 = '*\shell\Universal Viewer';
  RegKey1 = RegKey0 + '\command';


function ShellValue: WideString;
begin
  Result:= SFormatW('"%s" "%1"', [SParamExe]);
end;

function ApplyShellExtension(AEnable: boolean): boolean;
begin
  if AEnable then
    begin
    Result:= SetRegKeyStr(HKEY_CLASSES_ROOT, RegKey1, '', ShellValue);
    end
  else
    begin
    Result:=
      (RegDeleteKey(HKEY_CLASSES_ROOT, RegKey1) = ERROR_SUCCESS) and
      (RegDeleteKey(HKEY_CLASSES_ROOT, RegKey0) = ERROR_SUCCESS);
    end;
end;

function IsShellExtensionEnabled: boolean;
begin
  Result:= SCompareIW(
    GetRegKeyStr(HKEY_CLASSES_ROOT, RegKey1, '', ''),
    ShellValue
    ) = 0;
end;


end.

⌨️ 快捷键说明

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