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

toot 2000-01-11 05:23:00
如何在程序中屏蔽CTRL+ALT+DEL和ALT+TAB,WIN键?
谢谢!
同时谢谢 olo,jiangtao 指点我刷新的问题.
...全文
1097 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
JeffHe 2001-03-27
  • 打赏
  • 举报
回复
Eros :

请讲一下你的RegisterHotKey(),然后响应WM_HOTKEY就可以完成的具体原理好吗?

hjjf@263.net
saucerman 2000-02-17
  • 打赏
  • 举报
回复
Eros:

请千万告知例程,或在哪里找得到!
直接E_mail给我好吗? truejun@163.net
Eros 2000-02-17
  • 打赏
  • 举报
回复
在任何平台:使用RegisterHotKey(),然后响应WM_HOTKEY就可以完成。具体例子可以在本站寻找,也可以直接向本人要。
saucerman 2000-02-17
  • 打赏
  • 举报
回复
此问题要在NT下解出——

简直神鬼皆泣!!!

天地为之动容!!!


万物皆为之而颤抖!!!

三呼万岁!!!
saucerman 2000-02-17
  • 打赏
  • 举报
回复
我在C++ Builder里也有与此相同的贴子,至今无满意答案。关键是——

操作系统环境应是NT而不是Win9x,Win9x下就太小儿科了,简直不用问!

NT简直太难屏蔽掉Ctrl+Esc和左右两个Win键及其他系统键了————
——更别说Ctrl+Alt+Del组合键!!!

有大虾说可用Hook完成,请给出例程,必须通过NT环境检验。

若此,他可以受到几乎所有人的敬仰!因为这不是小问题!!!
spe 2000-02-10
  • 打赏
  • 举报
回复
Alt+F4可以用消息处理去拦住,在WM_SYSCOMMAND里当发现wParam为SC_CLOSE时直接return掉,不让它去调DefWindowProc。
Sandy 2000-02-09
  • 打赏
  • 举报
回复
请看本站的技术文章吧!!
killer2000 2000-02-09
  • 打赏
  • 举报
回复
还是做个系统钩子吧!
yb 2000-02-07
  • 打赏
  • 举报
回复
做一个系统的钩子,什么都解决了。
ToniHoo 2000-02-06
  • 打赏
  • 举报
回复
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, NULL, 0);
this function can not work normal under win97, it can work
under win98.
  • 打赏
  • 举报
回复
//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);
}
auto 2000-02-02
  • 打赏
  • 举报
回复
在WIN9X很简单,但是在WINDOWS NT下就比较难:-(。谁有办法在WINDOWS NT下也锁住,请EMAIL告知。非常感谢! mail to: albertzhang@163.net
ToniHoo 2000-01-29
  • 打赏
  • 举报
回复
我试了试SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,NULL,0),
始终不行,OS 为WIN98,编译器用BC5.02 和 VC6。
再请问一下,如果用钩子截获ALT+CTRL+DEL 消息,
代码该如何写。请多多指教。
Over 2000-01-23
  • 打赏
  • 举报
回复
Alt+F4可以在OnsysCommand中cancel
blaise 2000-01-22
  • 打赏
  • 举报
回复
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!
supershan 2000-01-20
  • 打赏
  • 举报
回复
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;
sean 2000-01-14
  • 打赏
  • 举报
回复
各位高手、朋友,ALT+F4还没解决呢?
我试过上述方法并为屏蔽这个组合!
PII 2000-01-13
  • 打赏
  • 举报
回复
^v^
czhp 2000-01-13
  • 打赏
  • 举报
回复
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING,TRUE,NULL,0);
czhp 2000-01-12
  • 打赏
  • 举报
回复
用SystemParametersInfo函数可屏蔽你所说的所有键, 不用再去找别的方法了!
加载更多回复(12)

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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