单击另一个程序中的按钮 - FindWindow、C#

2023-12-05

我正在尝试创建一个能够控制另一个程序(在 Windows 中)的程序。

我找到了这段代码:

// Get a handle to an application window.
[DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
public static extern IntPtr FindWindow(string lpClassName,
                                       string lpWindowName);

// Activate an application window.
[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);

//button event
private void button1_Click(object sender, EventArgs e)
{
    // Get a handle to the Calculator application. The window class 
    // and window name were obtained using the Spy++ tool.
    IntPtr calculatorHandle = FindWindow("CalcFrame", "Kalkulačka");

    // Verify that Calculator is a running process. 
    if (calculatorHandle == IntPtr.Zero)
    {
        MessageBox.Show("Calculator is not running.");
        return;
    }

    // Make Calculator the foreground application and send it  
    // a set of calculations.
    SetForegroundWindow(calculatorHandle);
    SendKeys.SendWait("111");
    SendKeys.SendWait("*");
    SendKeys.SendWait("11");
    SendKeys.SendWait("=");
}

是否可以模拟点击按钮?如何?可以点击后台程序吗?

你能给我举个例子吗?


您可以在其他帖子中找到答案:

以编程方式在另一个窗口中单击鼠标

or

将鼠标点击发送到另一个应用程序的 X Y 坐标

我希望他们能帮忙。

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

单击另一个程序中的按钮 - FindWindow、C# 的相关文章

随机推荐

  • 为什么 DBContext 放入 IMemoryCache 后会被释放(.NET Core / EF Core)

    我试图将 db data 的子集放入 IMemoryCache 中 但第二次调用该应用程序时 出现错误 ObjectDisposeException 无法访问已处置的对象 导致此错误的一个常见原因是处置从依赖项注入解析的上下文 然后尝试在应
  • 目录 api 的 gsuite 服务帐户返回 http 400 错误:请求错误/输入无效

    我已经开始开发一些 api 来在我的 G suite 目录中创建用户 我跟着服务帐户教程随着目录教程对于蟒蛇 我的代码非常简单 只是为了测试它如何工作 from google oauth2 import service account fr
  • 有没有办法在链接时设置 elf NEEDED 字段?

    给定一个可执行文件 gt objdump x someprog grep c NEEDED libstdc so 6 我想将要求更改为完整版本 包括次要版本和补丁级别 gt objdump x someprog grep c NEEDED
  • 根据半径计算从正方形中心到边缘的矢量

    给定一个正方形 由 x y 宽度 高度描述 和一个角度 以弧度为单位 我需要计算一个向量 该向量源自正方形中心并终止于以给定角度与正方形边缘碰撞的点 我真的对它的碰撞点最感兴趣 所以如果这会使计算更有效 请告诉我 这可以推广到矩形吗 一般而
  • 函数中的动态选择表达式[重复]

    这个问题在这里已经有答案了 我正在尝试编写一个函数来转换此数据框 library dplyr library rlang library purrr df lt data frame obj c 1 1 2 2 3 3 3 4 4 4 S1
  • 更改 IE 中禁用的文本框的字体颜色

    我注意到您可以更改文本框中文本的颜色 这些颜色在 Firefox 中应用一个简单的类被禁用 但在 IE 6 7 中无法找到方法 有没有人有一个优雅的解决方案来实现这一目标 我注意到您可以更改在 Firefox 中禁用的文本框中文本的颜色 我
  • 如何选择带有CUDA的GPU?

    我有一台带有 2 个 GPU 的计算机 我编写了一个 CUDA C 程序 我需要以某种方式告诉它我只想在 2 个显卡中的 1 个上运行它 我需要输入什么命令以及如何使用它 我相信这与cudaSetDevice但我真的不知道如何使用它 应该很
  • 使用 AngularJS 的全局 Ajax 错误处理程序

    当我的网站 100 jQuery 时 我曾经这样做 ajaxSetup global true error function xhr status err if xhr status 401 window location index ht
  • Unix 如何阻止 unix/linux `wall` 消息传递?

    如何阻止unix linuxwall消息传递 Example SSH somemachine WALL annoy the s out of people on machine 期望的目标 拒绝拥有机器上的墙 mesg n 从手册页 DES
  • 从网站获取 IIS 站点 ID

    我在 asp net c 中制作了一个用户控件 由于我需要检索一些数据 我想获取 iis 中用于该站点的站点 ID 这可能吗 如果可能的话 如何实现 Thanks 这将为您提供站点 ID Request ServerVariables IN
  • 创建静态 Mac OS X C 版本

    如何在 Mac OS X 上创建 c 文件的静态构建 当我尝试时 gcc o test Main c static I get ld library not found for lcrt0 o collect2 ld returned 1
  • 应用程序关闭时 Kivy 服务停止

    我正在从我的 Kivy 应用程序启动一项服务 service autoclass net saband myapp ServiceMyservice mActivity autoclass org kivy android PythonAc
  • 是否可以使用密码保护 SQL Server 数据库,甚至免受服务器管理员的攻击?

    我想在某个小公司的本地网络中安装一个应用程序 ASP Net SQL Server 2005 Express 来演示一段时间 但我也不想有人甚至系统管理员对此数据库没有权限 并且任何授予权限都需要我拥有的安全通行证 我只是希望隐藏我的表结构
  • 如何在热图右侧添加自定义刻度

    给定以下示例数据 data q1 6 4 4 4 6 6 6 4 6 6 6 6 q2 3 3 3 4 3 3 4 3 4 3 4 1 q3 6 3 4 4 4 4 6 6 6 6 4 1 q4 3 6 6 6 6 6 4 4 6 4 6
  • PHP cURL HTTP PUT

    我正在尝试使用 cURL 创建 HTTP PUT 请求 但无法使其工作 我读过很多教程 但没有一个真正起作用 这是我当前的代码 filedata array metadata gt rdfxml ch curl init url heade
  • 在 printStackTrace() 上打印完整的调用堆栈?

    我需要编写一个小型日志分析器应用程序来处理我的项目中使用的第三方闭源库 内部有自定义记录器 生成的一些日志文件 如果日志中出现异常条目 我需要收集有关从堆栈跟踪顶部到异常实际位置所涉及方法的聚合信息 不幸的是 默认情况下 Java prin
  • 带有特殊字符的 Firestore 查询属性

    我有一个联系人集合 其结构如下 name XPTO emails email protected Susan email protected Fred 但查询不会返回结果 db firestore collection contacts w
  • TFS 构建工作流程将文件夹/文件属性从只读更改为读/写?

    在我们的一个 Web 应用程序中 要求某些 HTML 页面可以在我们为用户创建的 GUI 界面中进行编辑 不幸的是 该接口直接从服务器上的页面 也在 wwwroot 中 读取 写入 服务器上的另一个页面从中读取并显示它 我现在所做的是改变了
  • 报表生成器导出为带有列标题空格的 CSV

    这是一个奇怪的请求 因为我们都知道数据库标头不应包含空格 然而 我正在使用的系统需要在其标题中包含空格才能导入 我创建了一个报告生成器报告 它将数据构建到一个表中 并在运行时工作 01 08 2015 Active date 31 07 2
  • 单击另一个程序中的按钮 - FindWindow、C#

    我正在尝试创建一个能够控制另一个程序 在 Windows 中 的程序 我找到了这段代码 Get a handle to an application window DllImport USER32 DLL CharSet CharSet U