【发布时间】:2014-02-08 15:47:37
【问题描述】:
我是一名学习 C++,我想知道如何制作可以与 Windows 中的其他应用程序交互的程序。交互是指单击按钮、提供键盘输入、更改该应用程序的设置、更改选项或甚至编辑或创建文件。如何在 C++ 中制作此类程序?
【问题讨论】:
标签: c++ interaction
我是一名学习 C++,我想知道如何制作可以与 Windows 中的其他应用程序交互的程序。交互是指单击按钮、提供键盘输入、更改该应用程序的设置、更改选项或甚至编辑或创建文件。如何在 C++ 中制作此类程序?
【问题讨论】:
标签: c++ interaction
您与其他应用程序的交互方式取决于您的操作系统。例如,如果您的应用程序在 Windows 上运行,您必须使用 Win32 API。 Win32 API 是操作系统提供的功能,允许您不仅与其他应用程序交互,还与操作系统本身交互,例如设置窗口或打开文件。
Win32 提供了一个消息传递系统。每个应用程序都有一个消息循环并接受来自操作系统的消息(例如关于鼠标点击),但也可以接收来自其他应用程序的消息。接收方无法确定消息是来自操作系统还是来自其他进程。
例如要更改标题,您必须使用 SendMessage 函数向其他应用程序发送 WM_SETTEXT 消息。
如果应用程序提供某种接口,则可以直接与另一个应用程序交互(更改其值,而不仅仅是修改 GUI)。这些可能是网络连接、命名管道、共享内存或某些模块/插件加载机制(通过 dll)。否则它不可能(很容易)。
对于基于 UNIX 的操作系统,存在一个名为 POSIX 的 API,提供与 Win32 类似的功能。
【讨论】: