我怎样才能控制其他程序?

时间:2010-08-20 17:55:55

标签: c

我的问题对于所有语言都是通用的,但我只使用C,所以,我想在这个中得到答案。

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

例如:

  • 如何填写此输入框(in 这个网站)使用C?我需要吗? 控制浏览器? (我正在使用 火狐)。

  • 仍在此示例中,我如何打开 这个浏览器中使用C的另一个标签? (见,我想控制这个 应用这样的另一个)

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

  • 如何使用你的gui填充数据库程序,用c来完成?

依旧......

非常感谢!

6 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

某些程序可编写脚本并发布API,允许其他程序向其发送命令。如果你的“目标”应用程序做了类似的事情,那么这通常是你最好的选择。

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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

答案:这取决于应用程序和平台(linux,windows,mac,...)。它通常不依赖于您选择的语言。

作为一个例子,linux上的很多gtk / kde程序可以通过dbus消息总线进行部分控制。这些应用程序旨在以这种方式进行控制。

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

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

简而言之,就你想要做什么完全提出一个单独的问题,说明你需要控制的平台和应用程序。