void __fastcall TFormMain::LockKeyBoard()
   {
    int temp;
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, &temp, 0);
   }
//---------------------------------------------------------------------------
 void __fastcall TFormMain::UnLockKeyBoard()
  {
   int temp;
   SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, &temp, 0);
  }

解决方案 »

  1.   

    看看这个:
    主  题:锁定计算机?
    作  者:c_hk
    所属论坛:Delphi
    问题点数:100
    回复次数:7
    发表时间:2001-7-6 10:02:01
     
      
      各位讨论一下有几种方法? 
    回复贴子: 
     回复人:InsideDelphi(ID) (2001-7-6 10:13:53)  得0分 
    用API LockWorkStation即可。  
     回复人:myxfang(小方) (2001-7-6 10:23:56)  得0分 
    弄一个屏幕保护程序,输入密码才能退出  
     回复人:c_hk(小李抢刀) (2001-7-6 12:14:43)  得0分 
    up  
     回复人:javis(蓝枫) (2001-7-6 13:19:47)  得0分 
    用这个看看:
    var 
      KHK: HHook;
      tmp: integer;function HookProc(ICode: integer;WP:WParam;LP:LParam):LResult;
    begin
      Result:=CallNextHookEx(KHK,0,0,0);
    end;
    //用下面的语句锁定
    KHK:=SetWindowsHookex(WH_JOURNALPLAYBACK,@HookProc,HInstance,0); 
     回复人:alwssoan(巧克力) (2001-7-6 13:33:34)  得0分 
    要不要没治的锁定法下面是代码(在哪台上运行,哪台就没治了):
    var
    lockrect:TRect;
    begin
    SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,0,0);//屏蔽系统功能键
    lockrect.right:=0;
    lockrect.left:=0;
    lockrect.top:=0;
    lockrect.bottom:=0;
    MapWindowPoints(handle,0,lockrect,2);
    ClipCursor(@lockrect);//限定鼠标的活动
    end;
    解除代码如下
    SystemParametersInfo(SPI_SCREENSAVERRUNNING,0,0,0);
    ClipCursor(0);
     
     回复人:dingzhenhhy(快疯了@!@已经疯了) (2001-7-6 13:37:26)  得0分 
    同时锁定屏幕,开始按钮,功能键!
    用鼠标操作一个输入口令程序才可解锁!  
     回复人:dingzhenhhy(快疯了@!@已经疯了) (2001-7-6 13:41:36)  得0分 
    c++Builder程序如下,改一点点就可以用于delphi了!
    void __fastcall TFormMain::HideDeskTop()
      {
        HANDLE hDesktop ;
        hDesktop= FindWindow("Progman", NULL);
        ShowWindow(hDesktop, SW_HIDE);
      }
    //---------------------------------------------------------------------------
    void __fastcall TFormMain::ShowDeskTop()
      {
        HANDLE hDesktop ;
        hDesktop= FindWindow("Progman", NULL);
        ShowWindow(hDesktop, SW_SHOW);
      }
    //---------------------------------------------------------------------------
    void __fastcall TFormMain::HideStarBtn()
      {
    HANDLE handle1,handle2;
    handle1=FindWindow("shell_traywnd",NULL);
    handle2=GetWindow(handle1,GW_CHILD);
    GetClassName(handle2,"button",255);
    ShowWindow(handle2,SW_HIDE);
      }
    //---------------------------------------------------------------------------
    void __fastcall TFormMain::ShowStarBtn()
      {
    HANDLE handle1,handle2;
    handle1=FindWindow("shell_traywnd",NULL);
    handle2=GetWindow(handle1,GW_CHILD);
    GetClassName(handle2,"button",255);
    ShowWindow(handle2,SW_SHOW);
      }
    //---------------------------------------------------------------------------
    void __fastcall TFormMain::LockKeyBoard()
      {
        int temp;
        SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, &temp, 0);
      }
    //---------------------------------------------------------------------------
    void __fastcall TFormMain::UnLockKeyBoard()
      {
      int temp;
      SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, &temp, 0);
      }