骑着蜗牛狂奔 发表于 2014-3-28 12:50:04

怎么是键盘的某个键失效

正在学习delphi,看小甲鱼视频到了屏幕保护程序了。按ALT+F4.程序就退出了。。我想问下怎么使这两个键失效。谢谢

骑着蜗牛狂奔 发表于 2014-3-28 17:18:34

怎么没有回复呢?:sad

清绮清漪 发表于 2014-3-28 17:50:25

没学过
俺想可能是
张冠李戴

骑着蜗牛狂奔 发表于 2014-3-28 18:50:51

清绮清漪 发表于 2014-3-28 17:50 static/image/common/back.gif
没学过
俺想可能是
张冠李戴

应该是没有吧、、、、、、、、、、、

rmb788520 发表于 2014-3-28 20:57:13

本帖最后由 rmb788520 于 2014-3-29 12:31 编辑

利用消息钩子可以做到屏蔽键处理
源码:
先定义一个钩子类型:var
KHandle: HHook;


function KeyHook(Code:Integer;Wparam:WPARAM;Lparam:LPARAM):LRESULT;STDCALL;
                                                                                     //钩子回调函数
begin
Result:=0;
if Code<0 then
    CallNextHookEx(KHandle,Code,Wparam,Lparam)
    else
    begin
      if (Wparam = VK_F4) and (GetKeyState(18) <0) then    // Alt+F4
      Result:=1
    end;
end;

窗口创建写入下面代码:
KHandle:=SetWindowsHookEx(WH_KEYBOARD,@KeyHook ,HInstance,GetCurrentThreadID());

这样可以屏蔽ALT +F4。

骑着蜗牛狂奔 发表于 2014-3-29 12:22:41

rmb788520 发表于 2014-3-28 20:57 static/image/common/back.gif
利用消息钩子可以做到屏蔽键处理
源码:
先定义一个钩子类型:var


谢谢。。。。。。。。。

ax20080409 发表于 2014-4-19 03:28:12

你可以检测按键来实现在form1下的 FormKeyDown这个事件
if (ssAlt in shift)and(key=115) then key:=0; //屏蔽alt+f4
如果 发现组合按键的消息用另一个无关的键来代替就好了   

骑着蜗牛狂奔 发表于 2014-4-19 09:29:26

ax20080409 发表于 2014-4-19 03:28 static/image/common/back.gif
你可以检测按键来实现在form1下的 FormKeyDown这个事件
if (ssAlt in shift)and(key=115) then key:=0; ...

好人、、、谢谢。。。。。
页: [1]
查看完整版本: 怎么是键盘的某个键失效