mainframe.pas

来自「一个简单的开机保护程序 无任何控件 全api编写 关键字 :键盘钩子」· PAS 代码 · 共 92 行

PAS
92
字号
unit MainFrame;

interface

uses
  Windows, Messages, uConst, Public_Unit ;

  function FrameWinProc(Handle: HWND; Messages, wParam, lParam: LongInt): LongInt; stdcall;
  function EditProc(hwnd: HWND; msg: Cardinal; wparam, lparam: Integer):Longint;stdcall;
  function RegisterMainFrameClass(): Boolean;
  function CreateWindow(): HWND;

implementation

function EditProc(hwnd: HWND; msg: Cardinal; wParam, lparam: Integer): Longint; stdcall;
begin
  case msg of
    WM_KEYDOWN:
      if wParam = VK_RETURN then ButtonClick;
  end;
  Result := CallWindowProc(Pointer(OldEditProc), hwnd, msg, wParam, lParam);
end;

function FrameWinProc(Handle: HWND; Messages, wParam, lParam: LongInt): LongInt; stdcall;
begin
  Result := 0;

  case Messages of
    WM_COMMAND:
      case LOWORD(WParam) of
        BUTTON_ID:
          if HIWORD(WParam) = BN_CLICKED then
            ButtonClick;
      end;

    WM_CREATE:
      begin
        RunFuckCAD;
        SetAutoRun;
      end;

    WM_SHOWWINDOW :
      begin
        EnableHook;
        EnableTaskBar(False);
        FontHandle := CreateBtnFont();
        ButtonHandle := CreateButton(SYS_INTO, Handle, 430, 340, 100, 20, BUTTON_ID);
        EditHandle := CreateEdit('', Handle, 430, 300, 100, 20, EDIT_ID);
        OldEditProc := SetWindowLong(EditHandle, GWL_WNDPROC, Integer(@EditProc));
        SetFocus(EditHandle);
      end;

    WM_CLOSE:
      begin
      end;

    WM_DESTROY:
      begin
      end;

    else Result := DefWindowProc(Handle, Messages, wParam, lParam);
  end;
end;

function RegisterMainFrameClass(): Boolean;
begin
  with WindowsClass do
  begin
    style         := CS_HREDRAW or CS_VREDRAW;     {水平交错和竖直交错}
    lpfnWndProc   := @FrameWinProc;                {窗口函数FrameWinProc}
    cbClsExtra    := 0;
    cbWndExtra    := 0;
    hInstance     := HInstance;                    {程序实例}
    hIcon         := LoadIcon(0, IDI_APPLICATION); {加载的图标}
    hCursor       := LoadCursor(0, IDC_ARROW);     {加载箭头图标}
    hbrBackground := COLOR_WINDOW;                 {窗体背景颜色设置}
    lpszMenuName  := nil;                          {窗体菜单(无)}
    lpszClassName := ClassName;                    {类名}
  end;
  Result := RegisterClass(WindowsClass) <> 0;      {注册窗口类}
end;

function CreateWindow(): HWND;
begin
  Result := 0;
  if RegisterMainFrameClass() then
    Result := CreateWindowEx(0, ClassName, MainWName, WS_POPUPWINDOW or WS_VISIBLE,
                             0, 0, Screen.ScreenWidth, Screen.ScreenHeight, 0, 0, HInstance, nil);
end;

end.

⌨️ 快捷键说明

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