锁定鼠标,如何锁定鼠标?

law1980547304 2011-07-04 05:24:53
网上流传的这个,只要鼠标左键单机一下就破解了
Option Explicit
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function ClipCursor Lib "user32" (lpRect As Any) As Long
Private Sub Command1_Click() '锁定鼠标
Dim r As RECT
r.Left = 100
r.Top = 100
r.Right = 100
r.Bottom = 100
ClipCursor r
End Sub
Private Sub Command2_Click()
ClipCursor ByVal 0&
End Sub
还有没有别的
2问题,可不可以达到锁定键盘的时候,让软件的输入依然正常
例如,锁定键盘后,软件的程序是输入A ,用户的输入无效,但是软件依然在输入A
...全文
1229 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这种根本不能锁住鼠标,你只要单击一下就能移出,不信你试试
duaozhuan0 2011-07-07
  • 打赏
  • 举报
回复
锁在一个form框内
嗷嗷叫的老马 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 q260401998 的回复:]
不如直接写
while block

这样就可以了啊[/Quote]
可读性还是显式表达好.
嗷嗷叫的老马 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wallescai 的回复:]
哈`哈`哈`,`老`马`, do while block=true 这`种`凶`残`的`语`句`你`也`写`得`出`来`啊
[/Quote]老蔡,被你的这些点弄得头晕眼花了........
Gordon_Freeman 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 myjian 的回复:]

VB code
'添加个按钮,再添加一个定时器,时间设置为100就行了.API自己声明.
dim bLock as boolean

private sub command1_cick() '按空格停止,因为鼠标移不动啦,哈哈.
block=not block
timer1.enabled=true
end sub

private sub timer1_timer()
……
[/Quote]

这也挺好的,原理是定时把鼠标移动到指定的位置,这样也差不多可以屏蔽鼠标移动了
Gordon_Freeman 2011-07-05
  • 打赏
  • 举报
回复
要是我的话就用VC写个钩子,然后导出一个函数给VB用,用钩子用户输入最管用
q260401998 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wallescai 的回复:]
引用 5 楼 myjian 的回复:

do while block=false
应该改为:
do while block=true

这样逻辑才正确.......头昏了....



哈`哈`哈`,`老`马`, do while block=true 这`种`凶`残`的`语`句`你`也`写`得`出`来`啊
[/Quote]
不如直接写
while block

这样就可以了啊
熊孩子开学喽 2011-07-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 myjian 的回复:]

do while block=false
应该改为:
do while block=true

这样逻辑才正确.......头昏了....
[/Quote]


哈`哈`哈`,`老`马`, do while block=true 这`种`凶`残`的`语`句`你`也`写`得`出`来`啊
嗷嗷叫的老马 2011-07-04
  • 打赏
  • 举报
回复
do while block=false
应该改为:
do while block=true

这样逻辑才正确.......头昏了....
嗷嗷叫的老马 2011-07-04
  • 打赏
  • 举报
回复
'添加个按钮,再添加一个定时器,时间设置为100就行了.API自己声明.
dim bLock as boolean

private sub command1_cick() '按空格停止,因为鼠标移不动啦,哈哈.
block=not block
timer1.enabled=true
end sub

private sub timer1_timer()
timer1.enabled=false
do while block=false
setcursorpos 100,100
doevents
loop
end sub
咸清 2011-07-04
  • 打赏
  • 举报
回复
锁定键盘后,软件的程序是输入A ,用户的输入无效,但是软件依然在输入A
⋯⋯⋯⋯⋯⋯
什么意思?

锁定鼠标确实要用ClipCursor 这个API⋯⋯
law1980547304 2011-07-04
  • 打赏
  • 举报
回复
等待高手
贝隆 2011-07-04
  • 打赏
  • 举报
回复
怎样限制鼠标移动

本文介绍如何限制鼠标在窗口的指定范围内移动。这个技术在需要防止用户鼠标在指定区域内活动时非常
有用。例如在一个射击游戏中,需要限制鼠标在射击区内移动。
操作步骤
1、建立一个新工程项目,缺省建立窗体FORM1
2、添加一个新模体
3、粘贴下面代码到新模体

Option ExplicitDeclare Function ClipCursor Lib "user32" (lpRect As Any) As Long
Declare Function ClipCursorClear Lib "user32" Alias "ClipCursor" (ByVal lpRect As Long) As Long
Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Type POINTAPI
X As Long
Y As Long
End Type
Public RetValue As Long
Public ClipMode As Boolean


Public Sub SetCursor(ClipObject As Object, Setting As Boolean)
' used to clip the cursor into the viewport and
' turn off the default windows cursor


Dim CurrentPoint As POINTAPI
Dim ClipRect As RECT


If Setting = False Then
' set clip state back to normal
RetValue = ClipCursorClear(0)
Exit Sub
End If


' set current position
With CurrentPoint
.X = 0
.Y = 0
End With
' find position on the screen (not the window)
RetValue = ClientToScreen(ClipObject.hwnd, CurrentPoint)
' designate clip area
With ClipRect
.Top = CurrentPoint.Y
.Left = CurrentPoint.X
.Right = .Left + ClipObject.ScaleWidth
.Bottom = .Top + ClipObject.ScaleHeight
End With ' clip it
RetValue = ClipCursor(ClipRect)


End Sub


4、添加一个图片框控件(PICTURE1)到窗体(FORM1)
5、设置PICTURE1的尺寸和FORM1的一样大
6、在PICTURE1的CLICK事件中添加以下代码:


Private Sub Picture1_Click()
ClipMode = Not ClipMode
SetCursor Picture1, ClipMode
End Sub


7、保存工程项目
8、运行程序。在图片框单击鼠标,鼠标将被包含在图片框控件的区域内。要释放限制状态只需再次单击鼠标。
注意:如果释放限制状态失败,鼠标将被永久限制,只能用重新启动机器来解决。
酒店管理系统使用说明书 主要功能 本系统中包含如下6大功能模块: q 前台服务:该模块主要包括开台点菜、维护菜品、签单、结账等功能,其中维护菜品功能包括添加和取消菜品,能够取消菜品的前提条件是尚未签单,即处于开单状态,结账时则要求所有商品都要签单,否则不允许结账。 q 后台管理:该模块主要包括台号管理、菜系管理和菜品管理功能,其中菜系用来对菜品进行分类。 q 销售统计:该模块用来分段统计营业额,可以按日、月和年进行统计,其中日统计是按消费单和销售的商品统计销售额,月统计是按日期和每日的销售额统计销售额,年统计是按日期和月份统计销售额。 q 系统安全:该模块主要包括交接班、锁定系统和修改密码功能,其中交接班功能在操作员换岗时使用,锁定系统在操作员临时离开时使用。 q 人员管理:该模块主要包括档案管理、管理员管理和操作权限管理功能,其中管理员管理功能用来管理系统的操作员,权限管理功能用来管理系统操作员具有的操作权限。 q 初始化系统:该功能用来对系统进行初始化,初始化后系统数据将全部被删除。 操作注意事项 用户在使用《酒店管理系统》之前,应注意以下事项: (1)管理员用户名和密码为:mr、mrsoft。 (2)当鼠标经过主界面右下角时,会弹出菜单,在这里可以对本系统的信息进行管理。 业务流程 要想运行本系统,请按照以下流程操作: (1)在“人员管理”中添加操作员及其档案信息。 (2)在“系统维护”中添加台号、菜系及菜品信息。 (3)在“台号”下拉列表中选择台号、在商品文本框中输入商品助记码或编号及商品数量,然后单击“开台”按钮。可添加多个商品。 (4)顾完单完菜后,单击“签单”按钮,表示确认该订单,此时可以执行结账操作,否则不可进行结账。 如果操作临时离开,可单击“锁定系统”按钮,输入登录密码可解锁。 (5)在“销售统计”中可对日销售、月销售及年销售额进行统计。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧