鼠标!!!!(100分)

  • 主题发起人 主题发起人 kkitty
  • 开始时间 开始时间
K

kkitty

Unregistered / Unconfirmed
GUEST, unregistred user!
在做客户程序时,如何对用户操作进行限制,就是当用户发出请求后,
等待应答,30秒后超时,在没等到应答也没操作时如何控制鼠标不能做其他操作,
并且改变鼠标的形状为自定义的那种,不是系统提供的那种。直到超时或应答到来时,
恢复鼠标原状
 
to 人在昆明
能不能具体点我没用过hook
 
用API设置鼠标的活动区域,如设定在你的窗体上的(100,100,102,102)内,它就无法移动
到别处了,就相当于锁定了鼠标
 
在全文搜索里查啊,找个例子改一下就行了。
这种程序设计的方法有可能导致用户摔鼠标,呵呵
 
to truecat
如何调用API呢,请指教!谢谢
 
哈哈,才30秒,还没来得及摔呢
 
密切关注
 
如何将鼠标锁定在一定的范围内呢 (2001年1月8日)

--------------------------------------------------------------------------------


 
 
 
请在Form中放置二个 Button, 然後分别为这两个按钮定义OnClick响应事件如下:
// 限制
procedure TForm1.Button1Click(Sender: TObject);
var
rtButton2: TRect;
begin

rtButton2 := Button2.BoundsRect;
MapWindowPoints(handle, 0, rtButton2, 2);
// 座标换算
ClipCursor(@rtButton2);
// 限制鼠标移动区域
end;

// 还原
procedure TForm1.Button2Click(Sender: TObject);
var
rtScreen: TRect;
begin

rtScreen := Rect(0, 0, Screen.Width, Screen.Height);
ClipCursor(@rtScreen);
end;


 
carcode的办法也确实不错。
 
关注中。。。。
 
同意 carcode
 
我觉得对于用户来说在操作应用程序时,不希望你限制他鼠标的移动的
限制鼠标会让人觉得很不舒服的,我建议还是做成像注册表中查找时的那种界面,
即简单容易实现又让人容易接受
就是做个小窗口,类似让用户等待的话,把这个小窗口设成BringToFront,
直到消息到来时再取消
 
在用户发出请求后设置鼠标为crHourGlass。
结束后换成默认形状
///
Application.CreateForm(TChildForm, ChildForm);
Application.OnMessage:=MainForm.MyMessage;/////////////////////////////////////////
Application.Run;
/////
procedure TMainForm.MyMessage(var Msg: TMsg;
var Handled: Boolean);
begin
if (Msg.message=WM_LBUTTONDOWN) or (Msg.message=WM_LBUTTONUP)then
if Screen.Cursor=crHourGlass then
begin
Beep;
Handled:=True;
end;

end;
 
接受答案了.
 
后退
顶部