如何模拟鼠标点击屏幕上的某个位置?

2023-12-21

我想做的是操纵鼠标。出于我自己的目的,这将是一个简单的宏。所以它会将我的鼠标移动到屏幕上的某个位置并单击,就像我以一定的间隔单击一样。


这是使用非托管函数来模拟鼠标单击的代码:

//This is a replacement for Cursor.Position in WinForms
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool SetCursorPos(int x, int y);

[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);

public const int MOUSEEVENTF_LEFTDOWN = 0x02;
public const int MOUSEEVENTF_LEFTUP = 0x04;

//This simulates a left mouse click
public static void LeftMouseClick(int xpos, int ypos)
{
    SetCursorPos(xpos, ypos);
    mouse_event(MOUSEEVENTF_LEFTDOWN, xpos, ypos, 0, 0);
    mouse_event(MOUSEEVENTF_LEFTUP, xpos, ypos, 0, 0);
}

要让鼠标按下特定的持续时间,您可以Sleep()正在执行该函数的线程,例如:

mouse_event(MOUSEEVENTF_LEFTDOWN, xpos, ypos, 0, 0);
System.Threading.Thread.Sleep(1000);
mouse_event(MOUSEEVENTF_LEFTUP, xpos, ypos, 0, 0);

上面的代码将使鼠标按下 1 秒,除非用户按下并释放鼠标按钮。另外,请确保不要在主 UI 线程上执行此代码,因为这会导致其挂起.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何模拟鼠标点击屏幕上的某个位置? 的相关文章

  • 使用 CMake 时如何导出 Emscripten 中的 C 函数

    In 本教程 https emscripten org docs porting connecting cpp and javascript Interacting with code html interacting with code
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • MVC3中设置下拉列表中的所选项目

    我必须为视图中的下拉列表设置所选项目 但它不起作用 View div class editor label Html LabelFor model gt model Gender div div class editor field Htm
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 有些有助于理解“产量”

    在我不断追求少吸的过程中 我试图理解 产量 的说法 但我不断遇到同样的错误 someMethod 的主体不能是迭代器块 因为 System Collections Generic List 不是迭代器接口类型 这是我被卡住的代码 forea
  • 处理右值时的 insert 与 emplace

    std string myString std unordered set
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • 带有移动向前/向后按钮的自定义列表框

    我有一个带有左 右重复按钮的自定义列表框 可以使用内容模板滚动其内容 如下所示
  • 在 VS 中运行时如何查看 C# 控制台程序的输出?

    我刚刚编写了一个名为 helloworld 的聪明程序 它是一个 C NET 4 5 控制台应用程序 在扭曲的嵌套逻辑迷宫深处 使用了 Console WriteLine 当我在命令行运行它时 它会运行并且我会看到输出 我可以执行其他命令并
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 已发布的 .Net Core 应用程序警告安装 .Net Core,但它已安装

    我制作了一个 WPF 和控制台应用程序 供某人在我无法访问的私人服务器上使用 我使用 Visual Studio 2019 的内置 发布向导 来创建依赖于框架的单文件应用程序 当该人打开 WPF 应用程序时 他们会看到标准警告 他们单击 是
  • memcpy/memmove 到联合成员,这是否设置“活动”成员?

    重要说明 一些评论者似乎认为我是从工会抄袭的 仔细看memcpy 它从普通旧地址复制uint32 t 它不包含在联合中 另外 我正在复制 通过memcpy 到工会的特定成员 u a16 or u x in a union 不直接到整个联盟本
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • Oauth2中如何同时撤销RefreshToken和使AccessToken失效

    我正在使用 Owin Oauth2 授权和资源服务器相同 开发单页面应用程序 AngularJS Net MVC Json Rest API 的身份验证流程 我选择了 Bearer Token 路由而不是传统的 cookie session
  • 模板类中的无效数据类型生成编译时错误?

    我正在使用 C 创建一个字符串类 我希望该类仅接受数据类型 char 和 wchar t 并且我希望编译器在编译时使用 error 捕获任何无效数据类型 我不喜欢使用assert 我怎样才能做到这一点 您可以使用静态断言 促进提供一个 ht
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • 如何在 C 中将 char 连接到 char* ?

    我怎样才能前置char c to char myChar 我有c值为 A and myChar值为 LL 我怎样才能前置c to myChar使 ALL 这应该有效 include

随机推荐

  • 在 Windows 服务器上设置 RabbitMQ 集群

    我正在尝试在 Windows 服务器上设置 RabbitMQ 集群 这需要使用共享的 Erlang cookie 文件 根据文档 我需要做的就是确保不同机器上的根目录包含相同的 erlang cookie 文件 所以我所做的就是在两台机器上
  • 序列压缩?

    最近我遇到了一个让我很困惑的问题 问题是 我想压缩一个序列 这样就不会丢失任何信息 例如 一个 一个 一个 b gt 一个 b a b a a c gt a b a a c 它不能被压缩为 a b a c 因为这样我们会丢失 a a 有什么
  • 下一页 13.4 错误:API 路由中的 NEXT_REDIRECT

    我的 app api auth route ts 文件 import redirect from next navigation export async function GET req Request try redirect dash
  • 是否可以在不初始化的情况下使用数组?

    我从 Stack Overflow 上看到了一些代码 这让我很困惑 我只是不知道是否缺少某些部分 代码如下 ch curl init captcha url curl setopt ch CURLOPT USERAGENT this gt
  • 快速提供静态文件和路由

    我正在使用express js 我的根路径是 xyz 如果路径是 xyz api 我想为我想要提供静态文件的任何其他路径提供 json 例如 xyz abc 或 xyz def bjk 等 我当前的配置如下 app use xyz path
  • JavaScript 中的 me = this 是支持缩小的好习惯吗?

    所以在我的 JavaScript 代码库中我一直在使用var me this支持缩小的习惯用法 但我最近开始质疑这一点 我想知道是否分配this使用更智能的缩小工具可以避免变量的变化吗 似乎工具应该能够检测创建变量来表示的函数this将通过
  • 将列逆透视为行(oracle)

    很像这个原来的SO在 Oracle 中动态地将行转换为列 https stackoverflow com questions 7730111 pivoting rows into columns dynamically in oracle
  • 尝试执行 google 脚本时出现 403

    我正在尝试通过 API 执行谷歌脚本 我已授权所有必要的范围 包括我的参数 函数和开发模式 POST https script googleapis com v1 scripts scriptId run devMode true func
  • 安装 Airflow 时出错:默认情况下 Airflow 的依赖项之一安装 GPL

    运行后出现如下错误pip install airflow postgres 命令 gt raise RuntimeError By default one of Airflow s dependencies installs gt a GP
  • 如何让 =NULL 在 SQLite 中工作?

    给出下表 Table Comedians Id First Middle Last 1 Bob NULL Sagat 2 Jerry Kal Seinfeld 我想做以下准备好的查询 SELECT FROM Comedians WHERE
  • 资产“application.js”不存在于资产管道中

    我是新来的Ruby and in ROR框架 我尝试使用 JQuery 创建网络应用程序 我的步骤是 添加 gem jquery rails 并执行捆绑安装来自命令行的命令 String require jquery2添加到应用程序 js
  • pandas to_sql 所有列均为 nvarchar

    我有一个动态创建的 pandas 数据框 其列名称各不相同 我试图将它们推送到 sql 但不希望它们作为默认数据类型 文本 转到 mssqlserver 任何人都可以解释为什么这是默认值吗 使用更常见的数据类型是否有意义 有谁知道如何为所有
  • Numpy:有效求和 M 的子矩阵 m [重复]

    这个问题在这里已经有答案了 如果我知道每个方子矩阵 m 2x2 的维数 并且大方阵 M 的维数可以被维数 m 整除 M modulo m 0 有没有一种有效的方法来求和以下矩阵 M M array 1 1 1 1 1 1 1 1 1 1 1
  • PowerShell:打破嵌套循环

    应该有一个breakPowerShell 中的命令可以通过分配标签退出嵌套循环 只是它不起作用 这是我的代码 timestampServers http timestamp verisign com scripts timstamp dll
  • 包恢复的 Nuget 版本控制问题

    由于 Nuget 存在某种版本控制问题 我无法安装包 使用包还原 以下是我采取的步骤 构建项目 错误 MagicalUnicorn MvcErrorToolkit 的架构版本与 NuGet 版本 1 6 21205 9031 不兼容 请将
  • 在 React 中导入目录

    我在 src 中有一个组件目录 其中有一个名为计算器的目录 然后它有 3 个不同的组件 而不是导入所有 3 个组件 我在想是否可以只导入目录计算器 组件之一具有以下代码 import React from react import Text
  • 霍夫曼压缩算法

    我已经使用霍夫曼算法实现了文件压缩 但我遇到的问题是 要启用压缩文件的解压缩 所使用的编码树或代码本身也应该写入文件 问题是 我该怎么做 在压缩文件的开头编写编码树的最佳方法是什么 霍夫曼编码有一个非常标准的实现基本压缩库 BCL http
  • 如何将表格视图单元格附件应用于表格视图记录

    解释 我有一个从 JSON 填充的 UITableView 表视图的目的是让用户选择单独的行记录并让复选标记附件显示为结果 问题是 虽然我可以让选中的行出现复选标记 但复选标记应用于该行 而不是记录本身 例如 如果我在 tableview
  • 在科学环境中进行编程实践? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 背景 去年 我在一所大学的物理研究小组实习 在这个组中 我们主要使用的是LabVIEW http en wikipedia org w
  • 如何模拟鼠标点击屏幕上的某个位置?

    我想做的是操纵鼠标 出于我自己的目的 这将是一个简单的宏 所以它会将我的鼠标移动到屏幕上的某个位置并单击 就像我以一定的间隔单击一样 这是使用非托管函数来模拟鼠标单击的代码 This is a replacement for Cursor