恨死键盘上的关机键和Win键了,有什么办法可以让它们失效?(100分)

  • 主题发起人 主题发起人 lxddd
  • 开始时间 开始时间
L

lxddd

Unregistered / Unconfirmed
GUEST, unregistred user!
关机键不小心碰一下,立刻关机,问都不问一声,还有那个该死的Win键,正好在Ctrl和
Alt之间,游戏玩的好好的,一碰就切换到桌面,再回去一看,挂了.
这几个破功能不知道是哪个笨蛋想出来的.
可以屏蔽吗?
 
最简单的办法就是拨掉键盘上的那个键。
如果你愿意写程序的话也可以写个键盘勾子
 
关机键可以很方便屏蔽,
显示属性--〉电源选项--〉在按下计算机电源按钮时:选择等待。
 
呵呵,看这个
http://tommcat.myetang.com/technique/powerkey.html
 
用镙丝刀...[:D][:D][:D]
 
楼上的方法最好,不会有不管用的时候!!!
 
换一个不带power键和win键的键盘,否则就挂个钩子吧!
 
是啊,我有不带这些键的键盘 ^_^
 
抠掉![:D]
玩笑玩笑
power键好像可以在主板的BIOS设置中去掉
win键还可以忍受吧?没什么嘛!
 
win 键应该有解决办法,但关机键就不知道了。
 
我记得以前有种号称win95键盘的东西,关机键正好在alt旁边。哈哈,上次我看到这种键盘我差点
没笑死。不过现在的键盘这些东西都是放在指示灯旁边了。你换个键盘。
 
你把那个power键给拨掉就好了吗。
 
大家还讨论什么呀,我不是给出方法了吗?大家怎么都不看呀??
http://tommcat.myetang.com/technique/powerkey.html

禁止win2k的快速关机 (拦截Power键)
类别: 硬件相关 http://www.tommstudio.com/newclub30/

(本文来源于网上,原作者为delphiwolf hubdog,如有侵权请来信告知)
在Win2K中提供了按Power键可以快速关机的功能。
但是有一点不好的就是没有任何警告就关机,更糟糕的是我的破键盘上Power键就在delete键下面,我经常在
按删除键时误按power键,导致工作中经常关机,特别是在我和PPMM聊天时,这就更加让我无法容忍,幸好
delphiwolf告诉我Power键按下后,会发一个消息给程序,程序如果禁止关机,就可避免,下面这个程序会在
按下power键后,弹出窗口,让用户输入确认才关机。
下面为这个拦截power键的程序:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
procedure WMPowerBroadcast(var message: TMessage);
message WM_POWERBROADCAST;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMPowerBroadcast(var message: TMessage);
const SkipNextPowerMsg:boolean=True;
begin
if SkipNextPowerMsg then
begin
SetForegroundWindow(Self.Handle);
if Application.MessageBox('是否关闭系统?','警告',MB_OKCANCEL + MB_DEFBUTTON2)<>IDOK then
begin
message.Result := BROADCAST_QUERY_DENY;
SkipNextPowerMsg:=not SkipNextPowerMsg;
end
else
Close;
end
else
SkipNextPowerMsg:=not SkipNextPowerMsg;

end;

end.


示例程序下载(159k):powerkeyp.zip
 
to www
很多时候都是无效的.不信自己试一下.
 
^_^ 我前天才把那几个键给拔掉,连里面的塑料垫圈也扔的远远的
谁让它折磨的我忍无可忍几近疯掉
 
我前天才把那几个键给拔掉,连里面的塑料垫圈也扔的远远的
谁让它折磨的我忍无可忍几近疯掉..
我也是这样。
 
快速关机,上边老兄说了,我说win键
function LowLevelKeyboardProc(nCode:integer;WParam:WPARAM;LParam:LPARAM):LRESULT;stdcall;
type
KBDLLHOOKSTRUCT=record
vkCode:DWORD;
scanCode:DWORD;
flags:DWORD;
time:DWord;
dwExtraInfo:dword;
end;
var
fFlag:BOOL;
p:^KBDLLHOOKSTRUCT;
begin
result:=0;
fFlag := false;
p:=Pointer(LPARAM);
if (ncode=HC_ACTION) then
begin
case wparam of
WM_KEYDOWN,
WM_SYSKEYDOWN,
WM_KEYUP,
WM_SYSKEYUP:
fFlag :=(p.vkCode = VK_Lwin) or (p.vkCode = VK_Rwin)or (p.vkCode = VK_apps);
end;
end;
if fFlag = true then
begin
PostMessage(hHandle,WM_SOCK,0,0);
Result:=1;
end;
if ncode <> 0 then
Result := CallNextHookEX(0,ncode,wparam,lparam);
end;
挂上钩子
procedure TFmMain.WndProc(var Message: TMessage);
begin
if Message.Msg=WM_SOCK then
begin
showmessage('用户按下win键');
end;
inherited;
end;
 
1.用老键盘
2.把键下面的导电橡胶拔了(不需要螺丝刀)
 
>>我前天才把那几个键给拔掉,连里面的塑料垫圈也扔的远远的
与其这么大的动作,还不如早点换个老式键盘呢!
 

Similar threads

后退
顶部