如何锁住键盘和鼠标?

mirageTF 2004-09-02 01:41:39
从来没做过,在此求教。有项目要求,在程序运行时,按某键后锁住键盘,不能进行操作,鼠标也要失效。待按了某键后又恢复,请问该如何处理?还有问一下,当锁住键盘之后,过了几分钟带密码的屏幕保护开启,这时候键盘还能不能输入?
...全文
1010 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmsjq 2004-09-02
  • 打赏
  • 举报
回复
我下过一个例子,以前试时不能锁住<ctrl>+<alt>+<del>三键,(试过多次)但是也不能解锁,今天试却可以锁住三键了,(不知道是不是写过注册表了)三键器按时,只能刷新屏幕,不会弹窗体。只能按特定键才能解锁。
weill 2004-09-02
  • 打赏
  • 举报
回复
咯咯,这种屏锁三键的功能,偶想,微软是不会轻易让大家实现的,否则,很多黑客会用上这一招的。

我的意思就是说,只怕只有高等级的黑客才会这一招吧(当然,也许是我太菜了,呵呵,关注中)。
mirageTF 2004-09-02
  • 打赏
  • 举报
回复
1楼的锁3键只能在98下,NT/2000下无效
futulove 2004-09-02
  • 打赏
  • 举报
回复
一楼的锁住三键好像不太好使
weill 2004-09-02
  • 打赏
  • 举报
回复
和和,刀走偏锋,这样的程序不是让人赞叹就是给人麻烦。

我的意思是,除非你做得非常好,会让人赞叹你的程序做得非常不错。
不过,只怕多数情况下,别人会骂你把电脑给搞得不听话了。

同意安吉儿的,利用windows自身的屏保。
constantine 2004-09-02
  • 打赏
  • 举报
回复
要真正屏蔽<Ctrl>+<Alt>+<Del>比较麻烦,当然有办法。
锁定其他的可以用钩子,
屏幕保护可以带密码的,就似系统的密码,你没有必要自己做
mirageTF 2004-09-02
  • 打赏
  • 举报
回复
当锁住键盘之后,过了几分钟带密码的屏幕保护开启,这时候键盘还能不能输入?
show00 2004-09-02
  • 打赏
  • 举报
回复
Hook
constantine 2004-09-02
  • 打赏
  • 举报
回复
把任务管理器关掉看看
mirageTF 2004-09-02
  • 打赏
  • 举报
回复
先谢谢楼上各位。
constantine(飘遥的安吉儿) 的代码不能解决我的问题,因为当操作软件的人离开岗位时不能让别人操作,所以按下<Ctrl>+<Alt>+<Del>就能化解不能用。
另外想问问,之前我也找过一些文章,有些是关于win2k下屏蔽<Ctrl>+<Alt>+<Del>的,想知道是不是一般的屏蔽都会因为<Ctrl>+<Alt>+<Del>而失效,必须先把<Ctrl>+<Alt>+<Del>屏蔽?
jishiping 2004-09-02
  • 打赏
  • 举报
回复
BlockInput 锁住后,就不能自己按某个键解开了,此时只能定好某个时间由程序自己解开。
constantine 2004-09-02
  • 打赏
  • 举报
回复
按下<Ctrl>+<Alt>+<Del>也可以解
constantine 2004-09-02
  • 打赏
  • 举报
回复
void __fastcall TForm1::btnClick(TObject *Sender)
{

BOOL __stdcall (*BlockInput)(BOOL Flag);
(FARPROC)BlockInput = GetProcAddress(GetModuleHandle("user32.dll"), "BlockInput");
if (BlockInput) BlockInput(true);

}

//恢复BlockInput(false);
mirageTF 2004-09-02
  • 打赏
  • 举报
回复
1、2楼,我没说清楚,是要锁全部windows
jishiping 2004-09-02
  • 打赏
  • 举报
回复
只能用全局的鼠标钩子和低级的键盘钩子了,不过低级的键盘钩子值能在NT平台使用。有关钩子的使用,楼主自己搜索一下吧,CSDN上很多的。
Lonelywolf1899 2004-09-02
  • 打赏
  • 举报
回复
if(Key!=??)
Key=0;
编译失败 2004-09-02
  • 打赏
  • 举报
回复
//鎖住鼠標
TRect lockmouse=Panel1->BoundsRect;
MapWindowPoints(Handle,0,(LPPOINT)(&lockmouse),2);
ClipCursor(&lockmouse);

//恢復鼠標
ClipCursor(0);

SystemParametersInfo(SPI_SCREENSAVERRUNNING,true,NULL,0);//屏蔽Ctrl+Alt+Del键
SystemParametersInfo(SPI_SCREENSAVERRUNNING,false,NULL, 0);//恢复Ctrl+Alt+Del键

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧