回复人: wz2001(maomao) (2001-7-18 20:59:34) 得0分
其实,这个问题,好多地方都有解答,比较简单的方式是欺骗系统进入屏保模式,如下
调用 SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0); ,使(Ctrl+Alt+Del)失效.
恢复时调用 SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
这比Hook简单多了.
其实,这个问题,好多地方都有解答,比较简单的方式是欺骗系统进入屏保模式,如下
调用 SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0); ,使(Ctrl+Alt+Del)失效.
恢复时调用 SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
这比Hook简单多了.
tmp: integer;
function HookProc(ICode: integer;WP:WParam;LP:LParam):LResult;
begin
Result:=CallNextHookEx(KHK,0,0,0);
end;使用下列语句开始锁定:
KHK:=SetWindowsHookex(WH_JOURNALPLAYBACK,@HookProc,HInstance,0);
使用下列语句结束锁定:
UnHookWindowsHookEx(KHK);这时候不能屏蔽Windows的系统键Ctrl-Alt-Tab,Ctrl-Esc,Alt-Tab等
你就可以使用:
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @tmp, 0);//锁起来
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @tmp, 0);//打开吧
IN AL,21H
OR AL,02H
OUT 21H,AL
给个完整的号不好