社区
Delphi
帖子详情
如何屏蔽Alt+F4
saxash
2000-02-01 01:02:00
我已经屏蔽了Ctl-Alt-Del和Alt-Esc等等...
但Alt-F4能关掉程序。用了键盘钩子,可是
不会滤出按键,所有键都屏蔽掉了,一拔掉钩子
就Alt-F4...能否不用钩子,或只滤出Alt-F4,
请各位大虾指点。最好有源程。
...全文
697
8
打赏
收藏
如何屏蔽Alt+F4
我已经屏蔽了Ctl-Alt-Del和Alt-Esc等等... 但Alt-F4能关掉程序。用了键盘钩子,可是 不会滤出按键,所有键都屏蔽掉了,一拔掉钩子 就Alt-F4...能否不用钩子,或只滤出Alt-F4, 请各位大虾指点。最好有源程。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Venne
2000-02-01
打赏
举报
回复
不需要这么麻烦吧!
假设FORM的初始化TAG为零,则在FORM的ONCLOSE事件中可以这么写:
if tag=1 then
Action:=caFree
else
Action:=caNone;
然后在你确定可以关掉程序的地方,设置FORM的TAG为1,然后调用FORM的CLOSE事件就可以了,这和KXY说的差不多,好象用不着设置钩子这么麻烦吧!
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
tag:=1;
close;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if tag=1 then
action:=cafree
else
action:=canone;
end;
end.
Firing_Sky
2000-02-01
打赏
举报
回复
在钩子中发现不是ALT+F4就把值传到下一个钩子
caili
2000-02-01
打赏
举报
回复
在application.onevent中可以方便地屏蔽.
radish
2000-02-01
打赏
举报
回复
在HOOK中判断消息的WPARAM和LPARAM就可滤过ALT+F4
929
2000-02-01
打赏
举报
回复
在程序中处理WM_SYSKEYDOWN,检测所传的按键码是否等于F4,若是则处理之。
举例如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure WMSysKeyDown(var msg:tmessage);message wm_syskeydown;
// procedure WMSysCommand(var msg:Tmessage);message wm_syscommand;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Caption :='alt+f4';
end;
{procedure TForm1.WMSysCommand(var msg: Tmessage);
begin
if msg.WParam =sc_close then
msg.Result :=0;
end;}
procedure TForm1.WMSysKeyDown(var msg: tmessage);
begin
if msg.WParam =vk_f4 then
msg.Result :=0;
end;
end.
在例子中,我还试着处理了WM_SYSCOMMAND,但处理后发现不可以,因为除了ALT+F4以外,菜单也可发出SC_CLOSE,处理后,窗口不会关闭。如果你的意思是彻底控制用户不可以任意关闭窗口,可以这样处理。
saxash
2000-02-01
打赏
举报
回复
It's simple!!
Thanks kxy first!!!
Thanks all!!!
ahfei
2000-02-01
打赏
举报
回复
g
kxy
2000-02-01
打赏
举报
回复
Form的OnCloseQuery
中CanClose := False;
C#写出的挂机锁,
屏蔽
任务管理器,
屏蔽
Alt
+
F4
C#写出的挂机锁,
屏蔽
任务管理器,
屏蔽
Alt
+
F4
易语言禁止
Alt
+
F4
关闭窗口
易语言禁止
Alt
+
F4
关闭窗口源码,禁止
Alt
+
F4
关闭窗口,处理,DeleteMenu,GetMenuItemCount,GetSystemMenu,CallWindowProcA,SetWindowLongA
禁止
Alt
+
F4
关闭窗口例程
禁止
Alt
+
F4
关闭窗口例程
vb.net程序中
屏蔽
alt
+
f4
的程序
vb.net程序中
屏蔽
alt
+
f4
的程序
屏蔽
alt
+
f4
抖动窗体
屏蔽
alt
+
f4
,锁屏界面必备, 抖动窗体,QQ中抖动窗体核心代码
Delphi
5,379
社区成员
262,722
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章