繁体   English   中英

如何控制其他程序?

[英]How Can I control another programs?

我的问题对于所有语言都是通用的,但是我只使用C语言,因此,我想在这本书中得到解答。

我的问题是,如何控制未编写的其他应用程序的行为?

例如:

  • 如何使用C填写此站点中的输入框? 我需要控制浏览器吗? (我正在使用Firefox。)

  • 仍在此示例中,如何使用C在此浏览器中打开另一个选项卡? (看,我想控制这个
    申请另一个)

  • 如何在我的程序中嵌入程序?

  • 我如何使用您的gui填充数据库程序,由c完成?

等等...

非常感谢!

您的(多个)问题没有具体或单个答案,因为每个程序都各不相同。 如果缺少具有API的所需应用程序,则可以使用低级Win32命令来标识要更改/读取的进程中的进程和窗口的句柄。 但是,这绝不是一个简单或可扩展的过程。

您必须与该程序API进行交互。

某些程序是可编写脚本的,并且发布了API,这些API允许其他程序向它们发送命令。 如果您的“目标”应用程序执行了此类操作,那么通常这是您的最佳选择。

如果应用程序没有C API,则您可能无法用C对其进行控制。这并不意味着它不可能,只是您可能需要其他语言。 如果您的应用程序是Windows GUI应用程序,则可以使用AutoIt与GUI进行编程交互。

通常,您使用程序的应用程序编程接口(API)获得对公共可用功能的访问,这些功能使您可以在该程序中完成任务。 但是,并非每个应用程序都具有您可以使用的API。

您应该先查看要通过程序控制的应用程序文档,并查看它们是否具有适合您需求的API。

大多数时候,应用程序需要API才能相互配合。 有另一种方法可以使对应用程序执行的操作自动化(就像用户一样)。 例如,在Windows上,有一个名为AutoIt的“语言”可以与您的计算机进行交互。

我不确定这是否是您的追求,但是它几乎可以完成您要求的所有事情。

问题是,如何控制未编写的其他应用程序的行为

答:这取决于应用程序和平台(Linux,Windows,Mac等)。 它通常不取决于您选择的语言。

例如,可以通过dbus消息传递总线部分控制Linux上的许多gtk / kde程序。 这些应用旨在通过这种方式进行控制。

我认为firefox有一个命令行选项,可以使用已经运行的浏览器打开新网站。

我相信,Mac上的Applescript或automator也可以用于控制某些应用程序。

简而言之,对您要精确执行的操作提出一个单独的问题,说明您需要控制的平台和应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM