DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: monica9612
今日帖子: 6
在线用户: 46
导航: 论坛 -> 文档资料 斑竹:liumazi,ruralboy  
作者:
男 yilei578354 (yilei) ★☆☆☆☆ -
普通会员
2003/12/25 15:25:52
标题:
怎么锁键盘?我想用delphi做屏幕锁定,请大家帮忙!谢谢! 浏览:4024
加入我的收藏
楼主: 怎么锁键盘?我想用delphi做屏幕锁定,请大家帮忙!谢谢!
我记得好象是调用 api函数.
当然是越简单越好!
我的qq:149136162
----------------------------------------------
yilei
作者:
男 register (隐神) ★☆☆☆☆ -
盒子活跃会员
2004/1/20 8:17:13
1楼: 标题: 锁定键盘 (Win2000 ,WinXP 下调试通过) 
关键字: 锁定键盘 锁键盘 
分类: 开发技巧 
密级: 公开 
(评分: , 回复: 0, 阅读: 55) »» 
//===================================================================//
// 写了个定时提醒软件来提醒自己每 50 分钟就休息 10 分钟,后来发现自己//
// 很不自觉(意料之内的事了),为有出绝招:锁键盘!                  //
//===================================================================//
unit LockTheKB;

interface
uses
 Wintypes,  WinProcs;

 //键盘上锁
 Function DisableKeyboard: Boolean;
 //键盘解锁
 Procedure EnableKeyboard;

implementation

var
 oldHook: Hhook;

Function KbHook( code: Integer; wparam: Word; lparam: LongInt ): LongInt;
Begin
 If code < 0 Then
   KbHook := CallNextHookEx( oldHook, code, wparam, lparam )
 Else
   KbHook := 1;
End; // KbHook

Function DisableKeyboard: Boolean;
//上锁
Begin
 oldHook := SetWindowsHookEx( WH_KEYBOARD, @KbHook, Hinstance, 0 );
 DisableKeyboard := oldHook <> 0;
End;

Procedure EnableKeyboard;
//解锁
Begin
 If oldHook <> 0 Then
 Begin
   UnhookWindowshookEx( oldHook );
   oldHook := 0;
 End; // If
End;
end. 

 

----------------------------------------------
按此在新窗口浏览图片
作者:
男 crazy (疯子) ★☆☆☆☆ -
盒子活跃会员
2004/1/20 19:15:05
2楼: 你怎么拿我们的主席开玩笑

你用的是不是就是什么钩子来的

教我几招如何学习使用钩子

----------------------------------------------
春花秋月何時了

往事知多少

小樓昨夜又東風
作者:
男 register (隐神) ★☆☆☆☆ -
盒子活跃会员
2004/1/20 23:18:00
3楼: //===================================================================//
// 写了个定时提醒软件来提醒自己每 50 分钟就休息 10 分钟,后来发现自己//
// 很不自觉(意料中的事了),为有出绝招:锁键盘!  (没锁DEL+CTRL+ATL)//
//===================================================================//

unit LockTheKB;

interface
uses
  Wintypes,  WinProcs, Windows;//, Types, Forms;

  //键盘上锁
  Function DisableKeyboard: Boolean;
  //键盘解锁
  Procedure EnableKeyboard;
  //鼠标上锁
  function KM_LockMouse: Boolean;
  //鼠标解锁
  function KM_UnLockMouse: Boolean;

implementation

var
  oldHook: Hhook;
  hMouseHook: Integer;

//键盘 Hook
Function KbHook( code: Integer; wparam: Word; lparam: LongInt ): LongInt;
Begin
  If code < 0 Then
    KbHook := CallNextHookEx( oldHook, code, wparam, lparam )
  Else
    KbHook := 1;
End; // KbHook

Function DisableKeyboard: Boolean;
//键盘上锁
Begin
  oldHook := SetWindowsHookEx( WH_KEYBOARD, @KbHook, Hinstance, 0 );
  DisableKeyboard := oldHook <> 0;
End;

Procedure EnableKeyboard;
//键盘解锁
Begin
  If oldHook <> 0 Then
  Begin
    UnhookWindowshookEx( oldHook );
    oldHook := 0;
  End; // If
End;

//MouseHook
function MouseHook(iCode: Integer; wParam: wParam; Mouse: lParam): LRESULT; stdcall;
begin
  if iCode < 0 then
    CallNextHookEx(hMouseHook, iCode, wParam, Mouse);
  Result := 1;
end;

// LockMouse
function KM_LockMouse: Boolean;
begin
  hMouseHook := SetWindowsHookEx(WH_MOUSE, MouseHook, HInstance, 0);
  Result := true;
end;

//UnLockMouse
function KM_UnLockMouse: Boolean;
begin
    UnHookWindowsHookEx(hMouseHook); (* Uninstall mouse hook *)
    hMouseHook := 0;
    Result := True;
end;
end.

----------------------------------------------
按此在新窗口浏览图片
作者:
男 toofy45 (不耻下问) ★☆☆☆☆ -
盒子活跃会员
2004/2/5 17:43:55
4楼: 请教一下,你把键盘给锁了,怎么给它解锁呀!
----------------------------------------------
-勉而好学,不耻下问
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行52.73438毫秒 RSS