最近學習钩子函数,知道WH_JOURNALRECORD和WH_JOURNALPLAYBACK可以禁止ctr+alt+del,可就是写不好,代碼如下,
希望高手指點。謝謝!function JOURNALRECORD(nCode:Integer;wParam:WPARAM;lParam:LPARAM):LResult;stdcall;var
  Form1: TForm1;
  WinHook:HHOOK;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
  WinHook:=SetWindowsHookEx(WH_JOURNALRECORD,@JOURNALRECORD,0,0);
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnhookWindowsHookEx(WinHook);
end;function JOURNALRECORD(nCode:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT;
begin
  if (nCode>0) then
  begin
   if (lParam=VK_Menu) and (lParam=VK_SHIFT) and (lparam=VK_CONTROL) then
   begin
    result:=1;
   end;
  end
  else
    result:=CallNextHookEx(winHook,nCode,wParam,lParam);
end;

解决方案 »

  1.   

    我有一个代码刚刚好就是解决你这个问题的,已经实现屏弊掉Ctrl+Alt+Del键,但你给的分太少了。
      

  2.   

    是嗎,分不夠我可以加,是拿钩子函数做的吧,如WH_JOURNALRECORD和WH_JOURNALPLAYBACK。
      

  3.   

    有許多都是dll的,我只是想多學習一下钩子函数的用法
      

  4.   


    在WINDOWS 9X环境中我们可以使用SystemParametersInfo (SPI_SCREENSAVERRUNNING, 1,NULL, 0);来屏蔽CTRL+ALT+DEL,但在NT/2000环境下却行不通,即使使用WH_KEYBOARD_LL这个低级的键盘hook也无法拦截!笔者通过替换GINA DLL的方式很好地实现了在NT/2000下屏蔽CTRL+ALT+DEL的功能。http://www.vckbase.com/document/viewdoc/?id=242