请帮我解释lock()函式里面的程式码[未解决]

Home Home
引用 | 编辑 z26742332
2008-12-22 00:05
楼主
推文 x0
LRESULT CALLBACK mouproc(int,WPARAM,LPARAM) {return 1;}
LRESULT CALLBACK keyproc(int,WPARAM,LPARAM) {return 1;}
void lock()
{
SendMessage(FindWindow(0,0),WM_SYSCOMMAND,SC_MONITORPOWER,2);
SetWindowsHookEx(WH_KEYBOARD,mouproc,GetModuleHandle(0),0);
SetWindowsHookEx(WH_MOUSE_LL,keyproc,GetModuleHandle(0),0);
}
在网路查资料时
发现该程式码很有趣
但我不知该如何正确使用
因此来这里请问

执行后电脑 ..

访客只能看到部份内容,免费 加入会员



献花 x0
引用 | 编辑 Lenki
2008-12-28 03:08
1楼
  
//SendMessage ;传送讯息给 HWnd
//FindWindow(0,0) ;取得第一个视窗的 HWnd
//WM_SYSCOMMAND ;用法很多,请参阅 msdn
//SC_MONITORPOWER,2 ;关闭显示器电源(-1:开启萤幕;1:省电模式;2:关闭电源)
SendMessage(FindWindow(0,0),WM_SYSCOMMAND,SC_MONITORPOWER,2);

//SetWindowsHookEx ;拦截系统讯息
//WH_KEYBOARD ;指定为键盘的讯息
//mouproc ;自定义的处理程式
//GetModuleHandle;取得目前执行程式的 Handle
SetWindowsHookEx(WH_KEYBOARD,mouproc,GetModuleHandle(0),0);
//WH_MOUSE_LL ;指定为滑鼠讯息
SetWindowsHookEx(WH_MOUSE_LL,keyproc,GetModuleHandle(0),0);


以上是查询 MSDN 的资料;
你所贴的程式执行之后会将萤幕输出关闭,所以画面会先变黑
再来就是拦截键盘的讯息,处理的程式就是 Return 1,等于什么事都不做……
然后又拦截滑鼠……一样又什么都不做。
所以电脑就重开吧!
表情

献花 x0
引用 | 编辑 Inndy
2010-02-05 18:04
2楼
  
这应该是用来保护程式用的吧....
只要按X就被关掉了~XD 表情

献花 x0