社区
Windows SDK/API
帖子详情
请问怎样实现对power,sleep,wake键的屏蔽
maize
2004-12-04 06:41:36
如题,谢谢
...全文
160
7
打赏
收藏
请问怎样实现对power,sleep,wake键的屏蔽
如题,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ly_liuyang
2004-12-06
打赏
举报
回复
看看http://community.csdn.net/Expert/topic/3582/3582523.xml?temp=.4015467
或者有帮组:)
http://lysoft.7u7.net
maize
2004-12-05
打赏
举报
回复
我试了一下,power,sleep,wake三个家按下时好像不会进入KeyboardHookHandler函数
maize
2004-12-05
打赏
举报
回复
我只需要在2000/XP下实现在我的应用程序里屏蔽power,sleep,wake
tabris17
2004-12-05
打赏
举报
回复
2000下可以用WH_KEYBOARD_LL“底层系统钩子”
98下不知道
tabris17
2004-12-05
打赏
举报
回复
98,2000实现的方法不一样啊
nyf1220
2004-12-04
打赏
举报
回复
哈哈,继续帖代码给你
如果Hook在应用程序中实现,若应用程序不是当前窗口时,该Hook就不起作用;如果Hook在DLL中实现,程序在运行中动态调用它,它能实时对系统进行监控。所以采用在DLL中实现Hook。新建一个导出两个函数的DLL文件,在HookUnit.pas中定义了钩子具体实现过程。代码如下:
library Hook;
uses
HookUnit in 'HookUnit.pas';
exports
EnableHotKeyHook,
DisableHotKeyHook;
begin
hNextHookProc := 0;
procSaveExit := ExitProc;
ExitProc := @HotKeyHookExit;
end.
②键盘钩子编程实现过程如下:
unit HookUnit;
interface
uses
Windows, Messages;
var
hNextHookProc: HHook;//保存SetWindowsHookEx的返回值
procSaveExit: Pointer;
function KeyboardHookHandler(iCode: Integer;wParam: WPARAM;lParam: LPARAM): LRESULT; stdcall; export;
function EnableHotKeyHook: BOOL; export;//安装钩子
function DisableHotKeyHook: BOOL; export;//卸载钩子
procedure HotKeyHookExit; far;
implementation
function KeyboardHookHandler(iCode: Integer;wParam: WPARAM;lParam: LPARAM): LRESULT; stdcall; export;
const
_KeyPressMask=$80000000;//键盘掩码常量
begin
Result:=0;
If iCode < 0 Then //根据SDK说明,若iCode小于0,调用CallNextHookEx并返回
begin
Result:=CallNextHookEx(hNextHookProc, iCode, wParam, lParam);
Exit;
end;
// 监测是否按下了Ctrl+X、Ctrl+V、Ctrl+C这三个组合键,若按下则退出,不响应事件
//你把下面的健改成你的建旧可以了笆
if ((lParam and _KeyPressMask) = 0) and(GetKeyState(vk_control) <0)
and ((wParam = Ord('X'))or(wParam = Ord('V'))or(wParam = Ord('C')))then
begin
Result:=1;
Exit;
end;
end;
function EnableHotKeyHook: BOOL; export;
begin
Result := False;//初始化返回值
if hNextHookProc<>0 then//如果已经注册,直接退出
Exit;
//挂上键盘钩子,同时传回值必须保留下来,免得Hook呼叫链结断掉
hNextHookProc:=SetWindowsHookEx(WH_KEYBOARD,KeyboardHookHandler,HInstance,0);
//注册hook
Result:=hNextHookProc <> 0;//通过返回值确定是否注册成功
end;
function DisableHotKeyHook: BOOL; export;
begin
if hNextHookProc<>0 then
begin
UnhookWindowshookEx(hNextHookProc);//解除Keyboard Hook
hNextHookProc:=0;//恢复标志
end;
Result:=hNextHookProc=0;//返回是否注销成功
end;
procedure HotKeyHookExit;
begin
if hNextHookProc<>0 then DisableHotKeyHook;//如果忘了解除HOOK,自动代理解除动作
ExitProc:=procSaveExit;
end;
end.
③主程序
unit HkUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
function EnableHotKeyHook: BOOL; external 'HookDll.DLL';//dll中注册hook的函数,传递参数为回调函数的指针
function DisableHotKeyHook: BOOL; external 'HookDll.DLL';//dll中注销hook的函数
procedure TForm1.Memo1ContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);//屏蔽Memo1鼠标右键弹出的系统菜单
begin
Handled:=true;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
EnableHotKeyHook;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DisableHotKeyHook;
end;
end.
纯冰糖
2004-12-04
打赏
举报
回复
这得编写系统hook,up
delphi 开发经验技巧宝典源码
0054 怎样
实现
接口委托 34 0055 在Delphi中使用汇编 35 0056 为程序设置版本和帮助信息 36 0057 动态链接库的创建与调用 36 0058 String类型和Pchar类型的用法和区别 36 0059 如何捕获异常 37 0060 ...
delphi 开发经验技巧宝典源码06
0054 怎样
实现
接口委托 34 0055 在Delphi中使用汇编 35 0056 为程序设置版本和帮助信息 36 0057 动态链接库的创建与调用 36 0058 String类型和Pchar类型的用法和区别 36 0059 如何捕获异常 37 0060 ...
android11.0上通过广播
屏蔽
电源
键
功能
+ } + //end xyx
wake
Up(eventTime, mAllowTheaterMode
Wake
From
Power
Key,
Power
Manager.
WAKE
_REASON_
POWER
_BUTTON, "android.policy:
POWER
"); }
power
Press、
power
LongPress、
wake
UpFrom
Power
Key分别对应:休眠,...
android
power
键
测试,Android Framework层
Power
键
关机流程(一,
Power
长按
键
操作处理)...
一:Android处理
Power
按
键
长按操作在Framework层中,Android4.x对
Power
键
(KeyEvent.KEYCODE_
POWER
)的操作,我们从PhoneWindowManager开始分析,在分析前我这里打印了该方法的堆栈调用信息。大家可以参考一下。public...
Android 9.0 禁用电源
键
(
屏蔽
关机短按长按事件)
在9.0的产品系统定制中,电源
键
在系统中的作用就是息屏和长按弹窗关机对话框功能,在系统中电源
键
和音量
键
也是控制性按
键
,在针对电源
键
的按
键
的响应控制就可以做到对电源
键
的管控,管理是否响应电源
键
长按和短按...
Windows SDK/API
1,183
社区成员
22,335
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章