win 2k 下怎么锁定鼠标(300分)

  • 主题发起人 主题发起人 人在昆明
  • 开始时间 开始时间

人在昆明

Unregistered / Unconfirmed
GUEST, unregistred user!
win 2k 下怎么锁定鼠标
 
procedure Tform1.limitmouse(con:trect); <br>begin <br>ClipCursor(@con); // 限制鼠标移动区域 <br>end; <br><br>procedure Tform1.releasemouse; <br>var <br>rtScreen: TRect; <br>begin <br>rtScreen := Rect(0, 0, Screen.Width, Screen.Height); <br>ClipCursor(@rtScreen); <br>end; <br><br>procedure TForm1.FormActivate(Sender: TObject); <br>var <br>con:trect; <br>begin <br>con:=form1.BoundsRect; <br>con.Left:=left; <br>con.Top:=top; <br>limitmouse(con); //限制鼠标 <br>end; <br>
 
这句话可以实现: <br>Var <br>temp:integer; <br><br>SystemParametersInfo(Spi_screensaverrunning,1,@temp,0); <br><br>这句话解除: <br>Var <br>temp:integer; <br><br>SystemParametersInfo(spi_screensaverrunning,0,@temp,0);
 
IsWindeowEnabbled(HWND hwnd) 判断窗口是否允许键盘或鼠标输入 <br>EnableWindow(HWND hwnd,BOOLbEnable) <br>允许/禁止指定的窗口或控制接收鼠标和键盘输入<br>
 
上面的2000下都不可以。鼠标点点就不行了。
 
锁定鼠标和键盘<br>StarRainBow( 星虹 )   <br><br>棗棗棗棗棗?<br><br>var KHK: HHook;<br><br>&nbsp; &nbsp; tmp: integer;<br><br>function HookProc(ICode: integer;WP:WParam;LP:LParam):LResult;<br><br>begin<br><br>&nbsp; Result:=CallNextHookEx(KHK,0,0,0);<br><br>end;<br><br><br>使用下列语句开始锁定 :<br><br>KHK:=SetWindowsHookex(WH_JOURNALPLAYBACK,@HookProc,HInstance,0);<br><br>使用下列语句结束锁定 :<br><br>UnHookWindowsHookEx(KHK);<br><br><br>这时候不能屏蔽 Windows 的系统键 Ctrl-Alt-Tab,Ctrl-Esc,Alt-Tab 等 <br><br>你就可以使用 :<br><br>SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @tmp, 0);// 锁起来 <br><br>SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @tmp, 0);// 打开吧 <br><br>______________________<br><br><br>要是不灵的话 ,就把代码作成 DLL 。 <br><br>BTW,以上代码可以同时锁住鼠标和键盘<br>
 
用HOOK,捕抓鼠标的消息不向后传递就行了!!<br>
 
请问如何将 mouse pointer 锁定在一个 Form 或 TWinControl 面不让它跑出这个范围呢 ?<br><br>请在 Form 中放置二个 Button, 然後分别为这两个按钮撰写 OnClick, 如下:<br><br><br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; rtButton2: TRect;<br>begin<br>&nbsp; rtButton2 := Button2.BoundsRect;<br>&nbsp; MapWindowPoints(handle, 0, rtButton2, 2); // 座标换算<br>&nbsp; ClipCursor(@rtButton2); // 限制滑鼠移动区域<br>end;<br><br>// 还原<br>procedure TForm1.Button2Click(Sender: TObject);<br>var<br>&nbsp; rtScreen: TRect;<br>begin<br>&nbsp; rtScreen := Rect(0, 0, Screen.Width, Screen.Height);<br>&nbsp; ClipCursor(@rtScreen);<br>end;<br>看一下这个资料???
 
good!!!!!<br>l like it<br>顶!!!!!!!!!!
 
用hook 吧,不过我对这个家伙有仇,虽然用起来也是轻车熟路!
 
后退
顶部