C#用mouse_event模拟鼠标的点击的问题 20

我用C#用mouse_event模拟鼠标的点击,我是用timer设定好固定时间在屏幕的某位置点吉的,可是在C#环境里调试时是没有问题的,即使窗体最小化了,也可以进行模拟鼠... 我用C#用mouse_event模拟鼠标的点击,我是用timer设定好固定时间在屏幕的某位置点吉的,可是在C#环境里调试时是没有问题的,即使窗体最小化了,也可以进行模拟鼠标点击,可是我单独运行EXE文件,在程序获得焦点时,mouse_event起作用,但一旦窗体失去焦点,只有那个setcurorpos的函数起作用,mouse_event点击的,就不起作用了,哪位兄弟帮帮忙解决一下这个问题? 展开
 我来答
匿名用户
2011-07-06
展开全部
给你写了一个示例,你自己可以看明白的:

Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_ABSOLUTE = &H8000 '指定鼠标使用绝对坐标系,此时,屏幕在水平和垂直方向上均匀分割成65535×65535个单元
Private Const MOUSEEVENTF_MOVE = &H1 '移动鼠标
Private Const MOUSEEVENTF_LEFTDOWN = &H2 '模拟鼠标左键按下
Private Const MOUSEEVENTF_LEFTUP = &H4 '模拟鼠标左键抬起

Private Const SW = 1024
Private Const SH = 768

Private Sub Screen_Click(ByVal x As Long, ByVal y As Long)
mw = x / SW * 65535
mh = y / SH * 65535
mouse_event MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE, mw, mh, 0, 0
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
End Sub

Private Sub Command1_Click()
Screen_Click 512, 384 '点击Command1之后,模拟点击屏幕中间
End Sub

Private Sub Command2_Click()
Print Rnd
End Sub

Private Sub Form_Load()
Me.Height = Me.Width
Command2.Move (Me.ScaleWidth - Command2.Width) / 2, (Me.ScaleHeight - Command2.Height) / 2
End Sub
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mqeepyww
2011-07-02 · TA获得超过207个赞
知道小有建树答主
回答量:328
采纳率:50%
帮助的人:272万
展开全部
你的问题描述有点问题
让人看的不是太懂
到底是窗体失去焦点后,再次点击不起作用
还是窗体失去焦点后,那个窗口的鼠标事件就不响应了?
如果是第二种,属于正常现象,也是必须现象,不然,你的焦点一直在那个窗体里真是个麻烦了
第一种的话,就有点问题了
一般出现这种情况的我知道的有几种情况
一是进程优先级太低,没抢上资源
二是窗体事件中加些代码,比如窗体最小化事件之类的
其他的就不太清楚了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mr蓦然回首
2011-07-04
知道答主
回答量:53
采纳率:0%
帮助的人:0
展开全部
失去焦点了,程序就不能捕获事件了。你查查全局鼠标钩子的一些知识吧。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式