如何屏蔽CTRL+ALT+DEL和ALT+TAB,WIN键?
如何在程序中屏蔽CTRL+ALT+DEL和ALT+TAB,WIN键?
谢谢!
同时谢谢 olo,jiangtao 指点我刷新的问题.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何在程序中屏蔽CTRL+ALT+DEL和ALT+TAB,WIN键?
谢谢!
同时谢谢 olo,jiangtao 指点我刷新的问题.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(20)
还是做个系统钩子吧!
做一个系统的钩子,什么都解决了。
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);
}
在WIN9X很简单,但是在WINDOWS NT下就比较难:-(。谁有办法在WINDOWS NT下也锁住,请EMAIL告知。非常感谢! mail to: albertzhang@163.net
我试了试SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,NULL,0),
始终不行,OS 为WIN98,编译器用BC5.02 和 VC6。
再请问一下,如果用钩子截获ALT+CTRL+DEL 消息,
代码该如何写。请多多指教。
Alt+F4可以在OnsysCommand中cancel
For alt+tab:
HKEY_CURRENT_USERControl 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!
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;
各位高手、朋友,ALT+F4还没解决呢?
我试过上述方法并为屏蔽这个组合!
^v^
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING,TRUE,NULL,0);
用SystemParametersInfo函数可屏蔽你所说的所有键, 不用再去找别的方法了!
Alt+F4可以用消息处理去拦住,在WM_SYSCOMMAND里当发现wParam为SC_CLOSE时直接return掉,不让它去调DefWindowProc。
请看本站的技术文章吧!!
我在C++ Builder里也有与此相同的贴子,至今无满意答案。关键是——
操作系统环境应是NT而不是Win9x,Win9x下就太小儿科了,简直不用问!
NT简直太难屏蔽掉Ctrl+Esc和左右两个Win键及其他系统键了————
——更别说Ctrl+Alt+Del组合键!!!
有大虾说可用Hook完成,请给出例程,必须通过NT环境检验。
若此,他可以受到几乎所有人的敬仰!因为这不是小问题!!!
此问题要在NT下解出——
简直神鬼皆泣!!!
天地为之动容!!!
万物皆为之而颤抖!!!
三呼万岁!!!
在任何平台:使用RegisterHotKey(),然后响应WM_HOTKEY就可以完成。具体例子可以在本站寻找,也可以直接向本人要。
Eros:
请千万告知例程,或在哪里找得到!
直接E_mail给我好吗? truejun@163.net
Eros :
请讲一下你的RegisterHotKey(),然后响应WM_HOTKEY就可以完成的具体原理好吗?
hjjf@263.net