请问如何在DELPHI中锁定鼠标于某个窗口,锁定键盘,包括:ALT、TAB、SHIFT等键。如何关闭计算机,重启计算机,请各位帮忙。小弟在些先谢谢大家了。
解决方案 »
- 求教!怎样读取文件中的图标,并将图标提交到数据库?
- 关于备份数据库的问题
- sql server c/s系统问题
- 為何我新增的屬性沒有出現在我自定義控件的object inspector上?
- 要写编写控件得论文了谁有什么心得啊说一下!有分送啊
- 请各位朋友帮忙解决一个dll 调用问题,立即给分!
- csdn的用户红星和绿星是怎么分的?
- 人气 论坛 高手!
- 来个指纹考勤的小调查 ,我会加分的。
- 为什么资源文件找不到?
- 为什么保存出现"Record/Key Deleted" ?能解决问题给1000分!!!!!!!!!!!
- 好高兴喔!昨天在成都喜来登酒店听了李维的一个讲座,关于.Net程序和Win32程序互相调用的专题
Var
rtButton2: TRect;
Temp:integer;
begin
rtButton2 := Button2.BoundsRect;
MapWindowPoints(handle, 0, rtButton2, 2); // 座标换算
ClipCursor(@rtButton2); // 限制滑鼠移动区域
SystemParametersInfo(spi_screensaverrunning,1,@temp,0);end;
这个所键盘的办法很BT
procedure TForm1.Button1Click(Sender: TObject);
begin
Asm //封锁20端口
IN AL,21H
OR AL,02H
OUT 21H,AL
end;
end;解锁键盘:
procedure TForm1.Button2Click(Sender: TObject);
begin
Asm //解锁20端口
IN AL,21H
AND AL,0FDH
OUT 21H,AL
end;
end;
begin
openprocesstoken(getcurrentprocess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,htoken);
lookupprivilegevalue(nil,'SeShutdownPrivilege',tkp.Privileges[0].Luid);
tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
adjusttokenprivileges(htoken,false,tkp,0,nil,rr);
exitwindowsex(EWX_SHUTDOWN or EWX_REBOOT,0);//重启
exitwindowsex(EWX_SHUTDOWN or EWX_POWEROFF,0);//关机
exitwindowsex(EWX_LOGOFF,0);//注销
end;
WIN98和WIN2000都适用的!var rt:TRect;
begin
if state then
begin
rt:=rect(100,100,100,100);
mapwindowpoints(application.Handle,0,rt,2);
clipcursor(@rt);//锁住鼠标
clipcursor(0);//释放鼠标
end;
var rt:TRect;
begin
rt:=rect(100,100,100,100);
mapwindowpoints(application.Handle,0,rt,2);
clipcursor(@rt);//锁住鼠标
clipcursor(0);//释放鼠标
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, shellapi, {这个东西不要忘记了添加}StdCtrls;
.
.
.
begin
ShellExecute(Handle,'open','c:\windows\rudll32.exe user.exe,exitwindows','','',SW_NORMAL);
end;
这样就一OK了,你只要运行这个程序,系统就会自动重新启动,WIN98了