问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-23 01:07

我来回答

5个回答

热心网友 时间:2023-07-12 04:33

1、首先添加using System.Runtime.InteropServices;

2、为鼠标添加模拟点击的各种参数

  //鼠标事件  因为我用的不多,所以其他参数没有写

   private readonly int MOUSEEVENTF_LEFTDOWN = 0x0002;//模拟鼠标移动
   private readonly int MOUSEEVENTF_MOVE = 0x0001;//模拟鼠标左键按下
   private readonly int MOUSEEVENTF_LEFTUP = 0x0004;//模拟鼠标左键抬起
   private readonly int MOUSEEVENTF_ABSOLUTE = 0x8000;//鼠标绝对位置
   private readonlyint MOUSEEVENTF_RIGHTDOWN = 0x0008; //模拟鼠标右键按下 
   private readonlyint MOUSEEVENTF_RIGHTUP = 0x0010; //模拟鼠标右键抬起 
   private readonlyint MOUSEEVENTF_MIDDLEDOWN = 0x0020; //模拟鼠标中键按下 
   private readonlyint MOUSEEVENTF_MIDDLEUP = 0x0040;// 模拟鼠标中键抬起


3、为鼠标点击添加点击函数
        

public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
         private void button2_Click(object sender, EventArgs e)        {            int x = int.Parse(textBox1.Text);            int y = int.Parse(textBox2.Text);
//绝对位置            mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, x * 65535 / 1600, y * 65535 / 900, 0, 0);//移动到需要点击的位置            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE, x * 65535 / 1600, y * 65535 / 900, 0, 0);//点击            mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE, x * 65535 / 1600, y * 65535 / 900, 0, 0);//抬起
//相对位置  指的是相对于当前鼠标的相对位置
            mouse_event(MOUSEEVENTF_MOVE , x , y, 0, 0);//移动            mouse_event(MOUSEEVENTF_LEFTDOWN , x , y, 0, 0);//点击            mouse_event(MOUSEEVENTF_LEFTUP , x , y , 0, 0);//抬起
        }

热心网友 时间:2023-07-12 04:34

你的 mouse_event 是针对你的窗体做反应的,如果你想点其他窗体,要获得那个窗口的句柄,然后发送mouse_event 事件
要调用windows api 函数来做

热心网友 时间:2023-07-12 04:34

给你写了一个示例,你自己可以看明白的:

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
另外,虚机团上产品团购,超级便宜

热心网友 时间:2023-07-12 04:35

估计要后台调用调用windows api 函数来做!

热心网友 时间:2023-07-12 04:36

Mouse_event函数中没有句柄的参数啊,高手能留个QQ吗么
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有要业余时间弹古筝的酒店么 古筝演奏师的就业前景怎么样 茶馆里主要放的音乐类型是 日语一级的话什么水平啊 一级到底要求多少词汇啊? WPS右键菜单(win11) 再生缘 我的温柔暴君结局是什么啊?女主最后傻了? 为什么做爱多了没感情了 情侣之间在一起时间长了是不是做爱的时候也懒得接吻了直接进入主题吗... 夫妻性爱后为何丧失了热情 夏普电视机开关启动后指示灯闪了一下又黑屏,是什麼原因? 夏普电视黑屏然后自动关机是什么原因? 键盘自定义按键模拟鼠标点击桌面指定坐标 夏普电视上的奇异果一点就黑屏,貌似是昨晚系统更新了以后就出现黑屏了,怎么办???急急急 设置按键 模拟鼠标点击屏幕一个地方 夏普电视进不了主页夏普电视开机后出现SHARP logo,然后出现广告画面,接着就黑屏,黑屏约1分_百度问一问 如何模拟鼠标点击和按键 手机点开微信和联系人背景怎么变黑色的了? 夏普电视打开电视就黑屏,但有声音.怎么办 如何让鼠标在当前位置模拟单击 手机微信为什么是黑底 夏普电视机黑屏怎么办? 易语言中的模拟鼠标点击怎么才可以让鼠标在随意地方单击 我的华为荣耀手机微信屏幕变成黑底白字啦,怎么能调过来? 夏普液晶电视经常出现黑屏怎么办? 微信变黑底是怎么回事 夏普电视黑屏有声音什么问题? 诈骗两万要判多久 按键精灵怎么模拟鼠标移动和点击,就像人手弄的一样 新买液晶电视夏普的怎么老是黑屏那? autohotkey怎么模拟鼠标按键 VB中怎样模拟鼠标双击操作? 怎么化眼线 眼线怎么用? 眼线怎么选择? 上眼线怎么化 用微信扫描条形码、扫描出的结果是未找到该商品、是什么意思呢?是假货... 商品扫码显示未找到此商品相关信息识物可以是不是假的 二维码扫描提示未找到该商品是什么意思? s12手机vivo微信怎么识别相片里的二维码都是出现未发现商品 微信扫条码显示找不到相关信息怎么回事? 用微信扫不出产品的条码信息,这样东西是不是假 用微信扫一扫商品的条形码,所显示未找到该商品,是不是该商品就是假冒... 在淘宝买海外的东西用微信扫防伪码显示,未找到产品相关信息怎么办? 为什么条形码扫出来未查到相关产品? 为什么条形码扫出来显示不了产品信息 智能电表微信扫描条形码没有数据怎么回事? 商品条形码扫描出来不显示商品信息 用微信扫不到物品的条码信息,这样东西是不是假的 扫条形码码扫到了和扫条形码识别成功和识别条形码识别成功意思完全一样吗?