C++ C++;将参数传递给已在运行的程序
我正在阅读关于使用语音命令控制应用程序的教程,在控制节奏盒的示例中,它建议可以执行以下命令:C++ C++;将参数传递给已在运行的程序,c++,C++,我正在阅读关于使用语音命令控制应用程序的教程,在控制节奏盒的示例中,它建议可以执行以下命令: rhythmbox-client --play rhythmbox-client --pause 为什么这不只是打开程序的一个新实例,我如何在自己的程序中模拟功能?例如,如何将字符串传递给程序的特定实例 谢谢有几种技术可以只运行一个应用程序实例。在这些术语中,调用yyy--play通常与 INSTANCE = GET_RUNNING_INSTANCE() IF INSTANCE == NULL
rhythmbox-client --play
rhythmbox-client --pause
为什么这不只是打开程序的一个新实例,我如何在自己的程序中模拟功能?例如,如何将字符串传递给程序的特定实例
谢谢有几种技术可以只运行一个应用程序实例。在这些术语中,调用
yyy--play
通常与
INSTANCE = GET_RUNNING_INSTANCE()
IF INSTANCE == NULL
INSTANCE = CREATE_NEW_INSTANCE()
SEND_MESSAGE(INSTANCE, PLAY)
Rhythmbox使用进程间通信来实现这类功能,这可以通过多种不同的方式实现。其中之一就是像Rhythmbox一样使用D-Bus 使用D-Bus并不容易,但基本思想是在D-Bus中注册应用程序,以便其他应用程序可以调用不同的过程来导出应用程序(例如播放/停止操作),然后在同一应用程序中实现客户端。这样,如果传递了像
--play
这样的参数,则不运行常规代码,只需检查正在运行的应用程序的实例,并向已经运行的程序发送命令
另一方面,当没有传递任何参数时,程序只是启动并注册适当的触发器,以便稍后调用的实例可以控制它
这是一个关于dbus的
例如,如何将字符串传递给程序的特定实例
您需要使用操作系统提供的任何进程间通信设施。例如,套接字或命名管道或消息