CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何屏蔽CTRL+ALT+DEL和ALT+TAB,WIN键?

楼主toot()2000-01-11 17:23:00 在 VC/MFC / 基础类 提问

如何在程序中屏蔽CTRL+ALT+DEL和ALT+TAB,WIN键?  
  谢谢!  
  同时谢谢   olo,jiangtao   指点我刷新的问题. 问题点数:50、回复次数:33Top

1 楼olo()回复于 2000-01-11 18:08:00 得分 12

SystemParametersInfo(SPI_SCREENSAVERRUNNING,0,nil,1);  
  可屏蔽CTRL+ALT+DEL。Top

2 楼jing()回复于 2000-01-11 19:00:00 得分 2

好象和注册表有关Top

3 楼Firing_Sky(火的天空)回复于 2000-01-11 19:47:00 得分 2

olo说的有道理,那是一个模拟屏幕保护程序状态的AP!Top

4 楼owen()回复于 2000-01-12 00:02:00 得分 2

olo说得对,这个API在DELPHI中也可实现。  
  我曾用它写了一个“礼物”(小恶作剧)Top

5 楼olo()回复于 2000-01-12 08:45:00 得分 0

对不起,应该是:  
  SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,nil,0);  
   
  ALT+TAB,WIN键可考虑写一个键盘钩子,另外CTRL+ESC也得屏蔽吧。Top

6 楼czhp()回复于 2000-01-12 12:30:00 得分 2

用SystemParametersInfo函数可屏蔽你所说的所有键,   不用再去找别的方法了!Top

7 楼tengel()回复于 2000-01-12 14:06:00 得分 0

可以写一个中间设备驱动程序,截获键盘中断Top

8 楼sean(sunbow)回复于 2000-01-12 14:18:00 得分 0

请问olo   参数nil   什么意思?Top

9 楼olo()回复于 2000-01-12 14:26:00 得分 0

在C中就是NULL。Top

10 楼olo()回复于 2000-01-12 14:27:00 得分 0

在C中就是NULL。DELPHI中是nil.Top

11 楼sean(sunbow)回复于 2000-01-12 15:50:00 得分 0

请问czhp如何屏蔽其他键。  
  其参数是什么?如何用?谢谢您!Top

12 楼sean(sunbow)回复于 2000-01-12 15:52:00 得分 0

请问olo   为什么我用SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,NULL,0);可以。但参数改为SPI_SETSWITCHTASKDISABLE以屏蔽Enables   or   disables   ALT+TAB   and   ALT+ESC   task   switching却出现   C2065:   'SPI_SETSWITCHTASKDISABLE'   :   undeclared   identifier  
  请问为什么!Top

13 楼sean(sunbow)回复于 2000-01-12 19:24:00 得分 2

好象还要考虑ALT+F4的问题。因为ALT+F4可以关闭任何程序。Top

14 楼czhp()回复于 2000-01-13 15:59:00 得分 0

SystemParametersInfo(SPI_SETSCREENSAVERRUNNING,TRUE,NULL,0);Top

15 楼PII()回复于 2000-01-13 18:13:00 得分 0

^v^Top

16 楼sean(sunbow)回复于 2000-01-14 10:00:00 得分 0

各位高手、朋友,ALT+F4还没解决呢?  
  我试过上述方法并为屏蔽这个组合!Top

17 楼supershan()回复于 2000-01-20 11:09:00 得分 10

Alt+F4可另做个程序:首先声明变量为B:Boolena,代码如下:  
  procedure   TForm1.FormKeyDown(Sender:   TObject;   var   Key:   Word;  
      Shift:   TShiftState);  
  begin  
      if   (ssAlt   in   shift)   and   (Key=VK_F4)   then  
      begin  
          B:=False;  
          FormCloseQuery(sender,B);  
      end;  
  end;  
   
  procedure   TForm1.FormCloseQuery(Sender:   TObject;   var   CanClose:   Boolean);  
  begin  
      if   B=False   then  
          CanClose:=False  
      else  
          CanClose:=True;  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
      B:=True;  
      Close;  
  end;  
  Top

18 楼blaise()回复于 2000-01-22 20:33:00 得分 10

For   alt+tab:  
  HKEY_CURRENT_USER\Control   Panel   and   Desktop   and   Coolswitch   0  
  need   reboot.  
  For   CTRL+ALT+DEL,I   don't   think   there   is   anyway   to   disable   it(UNDER   NT),it's   part   of   the   security   policy   for   NT,no   way!  
  Top

19 楼Over()回复于 2000-01-23 22:57:00 得分 3

Alt+F4可以在OnsysCommand中cancelTop

20 楼ToniHoo()回复于 2000-01-29 01:57:00 得分 0

我试了试SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,NULL,0),  
  始终不行,OS   为WIN98,编译器用BC5.02   和   VC6。  
  再请问一下,如果用钩子截获ALT+CTRL+DEL   消息,  
  代码该如何写。请多多指教。  
  Top

21 楼auto()回复于 2000-02-02 22:20:00 得分 0

在WIN9X很简单,但是在WINDOWS   NT下就比较难:-(。谁有办法在WINDOWS   NT下也锁住,请EMAIL告知。非常感谢!   mail   to:   albertzhang@163.netTop

22 楼ybchen(我)(是)(菜)(鸟)(我)(怕)(谁)回复于 2000-02-03 21:43:00 得分 3

//true:   程序屏蔽任何功能键,开始菜单,任务栏等  
  //false:   恢复  
  void   ExclusiveAllWindows(bool   ExAw)  
    {  
              HWND   hWnd   =   FindWindow("Shell_traywnd",   "");  
              if(hWnd)  
                {  
                    if(ExAw)  
                      {  
                          ShowWindow(hWnd,   SW_HIDE);  
                          SetWindowPos(hWnd,   HWND_BOTTOM,   0,   0,   0,   0,   SWP_HIDEWINDOW);  
                      }  
                    else  
                      {  
                          ShowWindow(hWnd,   SW_SHOW);  
                          SetWindowPos(hWnd,   HWND_TOP,   0,   0,   0,   0,   SWP_SHOWWINDOW);  
                      }  
                }  
   
              SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,   !ExAw,   "",   0);  
              SystemParametersInfo(SPI_SCREENSAVERRUNNING,     ExAw,     "",   0);  
    }Top

23 楼ToniHoo()回复于 2000-02-06 21:17:00 得分 0

SystemParametersInfo(SPI_SCREENSAVERRUNNING,   1,   NULL,   0);  
  this   function   can   not   work   normal   under   win97,   it   can   work  
  under   win98.Top

24 楼yb()回复于 2000-02-07 03:21:00 得分 0

做一个系统的钩子,什么都解决了。Top

25 楼killer2000()回复于 2000-02-09 01:15:00 得分 0

还是做个系统钩子吧!  
  Top

26 楼Sandy()回复于 2000-02-09 19:05:00 得分 0

请看本站的技术文章吧!!Top

27 楼spe()回复于 2000-02-10 16:41:00 得分 0

Alt+F4可以用消息处理去拦住,在WM_SYSCOMMAND里当发现wParam为SC_CLOSE时直接return掉,不让它去调DefWindowProc。Top

28 楼saucerman(外星人)回复于 2000-02-17 19:19:00 得分 0

我在C++   Builder里也有与此相同的贴子,至今无满意答案。关键是——  
   
  操作系统环境应是NT而不是Win9x,Win9x下就太小儿科了,简直不用问!  
   
  NT简直太难屏蔽掉Ctrl+Esc和左右两个Win键及其他系统键了————  
  ——更别说Ctrl+Alt+Del组合键!!!  
   
  有大虾说可用Hook完成,请给出例程,必须通过NT环境检验。  
   
  若此,他可以受到几乎所有人的敬仰!因为这不是小问题!!!Top

29 楼saucerman(外星人)回复于 2000-02-17 19:27:00 得分 0

此问题要在NT下解出——  
   
            简直神鬼皆泣!!!  
   
                    天地为之动容!!!  
   
   
                              万物皆为之而颤抖!!!  
   
  三呼万岁!!!Top

30 楼Eros()回复于 2000-02-17 20:07:00 得分 2

在任何平台:使用RegisterHotKey(),然后响应WM_HOTKEY就可以完成。具体例子可以在本站寻找,也可以直接向本人要。Top

31 楼saucerman(外星人)回复于 2000-02-17 20:43:00 得分 0

Eros:  
   
  请千万告知例程,或在哪里找得到!  
  直接E_mail给我好吗?     truejun@163.net         Top

32 楼JeffHe(雅永紫)回复于 2001-03-27 13:12:00 得分 0

Eros   :  
   
            请讲一下你的RegisterHotKey(),然后响应WM_HOTKEY就可以完成的具体原理好吗?  
   
  hjjf@263.netTop

相关问题

  • 我要屏蔽CTRL+ALT+DEL
  • 如何屏蔽Ctrl+Alt+Del?
  • 怎样屏蔽Alt+Tab和Ctrl+Alt+Del?
  • 如何在NT中屏蔽Alt+Ctrl+Del?
  • 老问题:Win2000 屏蔽Ctrl+Alt+Del
  • 在PreTranslateMessage()里能屏蔽Ctrl+Alt+Del吗?
  • 菜题(如何屏蔽ctrl+alt+del)
  • 在WIN2000下怎样屏蔽CTRL+ALT+DEL
  • 老问题 怎样屏蔽alt+ctrl+del
  • 屏蔽CTRL+ALT+DEL!!一定给分!!

关键词

  • .net
  • win98
  • 屏蔽
  • nt
  • alt+
  • f4
  • systemparametersinfo
  • screensaverrunning
  • 键
  • spi

得分解答快速导航

  • 帖主:toot
  • olo
  • jing
  • Firing_Sky
  • owen
  • czhp
  • sean
  • supershan
  • blaise
  • Over
  • ybchen
  • Eros

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo