任何使alt+f4失效?

leedeqing 2000-08-21 06:00:00
...全文
854 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tod 2000-09-01
  • 打赏
  • 举报
回复
其实有一个很简单的方法,就是在FormClose中加上:
begin
...
Action:=caNone;
...
end;
试试看,没问题了吧?
mytulip 2000-08-29
  • 打赏
  • 举报
回复
用WM_HOTKEY与RegisterHotKey将ATL+F4重定义功能,不过你一定要这个program 一直开着。
过一会我将主要code贴出来
supershan 2000-08-27
  • 打赏
  • 举报
回复
最简单的是在form.onclosequery中写不就可以了吗
StarRainBow 2000-08-26
  • 打赏
  • 举报
回复
写一个键盘Hook不就OK?
LaoZheng 2000-08-25
  • 打赏
  • 举报
回复
?
Hank 2000-08-25
  • 打赏
  • 举报
回复
Sorry,献丑了!
不过到现在我不明白你是让系统的ALT+F4失效还是让你的程序的ALT+F4失效?
如果是前者,我无能为力!
如果是后者,那么可以用程序控制Form的Enabled属性!
例如:
Form2.Enabled:=False;
即可!
shines77 2000-08-23
  • 打赏
  • 举报
回复
Hank: 哪有 Alt+F4 啊?
shines77 2000-08-23
  • 打赏
  • 举报
回复
Hank: 你说的方法是屏蔽 Ctrl+Alt+Del,Ctrl+ESC,Alt+Tab,WinKey 的,你自己也知道,哪有Alt+F4啊?!
PoolD 2000-08-23
  • 打赏
  • 举报
回复
在form的OnClose或者OnCloseQuery事件中禁止form关闭就可以了。
Hank 2000-08-21
  • 打赏
  • 举报
回复
仔细看一下我写的函数,你就明白了!
procedure SetSystemKey(Enable:Boolean);
//屏蔽或恢复系统功能键仅适用于Win9X (Ctrl+Alt+Del,Ctrl+ESC,Alt+Tab,WinKey)
var
Temporary:Integer;
begin
case Enable of
True: SystemParametersInfo(Spi_screensaverrunning,0,@Temporary,0);
False: SystemParametersInfo(Spi_screensaverrunning,1,@Temporary,0);
end;
end;
shines77 2000-08-21
  • 打赏
  • 举报
回复
还可以在Form_QueryUnload()事件里处理,阻止系统关闭,但好像就关不了(除了强行...)。
shines77 2000-08-21
  • 打赏
  • 举报
回复
但是删除 [Alt+F4] 一项由个不耗的地方,"X"按钮将是灰色的:(

你还可以用键盘过滤法:

procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=VK_F4) and(Shift=[ssAlt]) then
begin
KEY:=0;
Shift:=[];
end;
end;

方法二:
只要将 TForm 的 KeyPreview 设为 True;然后:
procedure TForm1.form1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=115 then
KEY:=0;
end;
即可。
shines77 2000-08-21
  • 打赏
  • 举报
回复
把系统菜单中的 [Alt+F4] 一项删掉即可:)很简单啊
蝈蝈俊 2000-08-21
  • 打赏
  • 举报
回复
把alt+f4定义成应用程序热健,然后在热健处理脚本中不做任何处理。不一定可以,自己试一试吧

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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