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

📄 stop_cad.dpr

📁 一个简单的开机保护程序 无任何控件 全api编写 关键字 :键盘钩子
💻 DPR
字号:
library STOP_CAD;

uses
  Windows;

{$R *.res}
const
  WM_HOTKEY     = $0312;
var
  FHandle    : THandle;
  OldAppProc : Pointer;

function HookProc(hHandle: THandle; uMsg: Cardinal; wParam, lParam: Integer): LRESULT; stdcall;
var
  K, C: Word;
begin
  Result := 0;
  case uMsg of
    WM_HOTKEY :
      begin
        K := HIWORD(lParam);
        C := LOWORD(lParam);
        if (C and VK_CONTROL<>0) and (C and VK_MENU <>0) and ( K = VK_Delete)
           then Exit;   { disable Ctrl + Alt + Del}
      end;
    else Result := CallWindowProc(OldAppProc, hHandle, uMsg, wParam, lParam);
  end;
end;

procedure EntryPointProc(Reason: Integer);
begin
  case reason of
    DLL_PROCESS_ATTACH:
      begin  {hook SAS window wndproc}
        FHandle := FindWindow('SAS window class', 'SAS window');
        if not IsWindow(FHandle) then Exit;
        { save old wndproc}
        OldAppProc := Pointer(GetWindowLong(FHandle, GWL_WNDPROC));
        { set new wndproc }
        SetWindowLong(FHandle, GWL_WNDPROC, Cardinal(@HookProc));
      end;
    DLL_PROCESS_DETACH:
      begin
        if FHandle > 0 then
           begin  {unhook}
             if Assigned(OldAppProc) then
                SetWindowLong(FHandle, GWL_WNDPROC, LongInt(OldAppProc));
             OldAppProc := nil;
           end;
      end;
    end;
end;

begin
  OldAppProc := nil;
  FHandle := 0;
  DllProc := @EntryPointProc;
  EntryPointProc(DLL_PROCESS_ATTACH);
end. 

⌨️ 快捷键说明

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