Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在执行时运行应用程序时运行函数_C++_Windows_Winapi - Fatal编程技术网

C++ 在执行时运行应用程序时运行函数

C++ 在执行时运行应用程序时运行函数,c++,windows,winapi,C++,Windows,Winapi,好的,我要做的就是创建一个程序,当它已经执行时,可以再次“执行”,检测已经存在的进程,而不是创建另一个进程,在现有进程中执行一个函数 有什么想法吗 我可能在这方面完全错了。我正在尝试使这个开源虚拟打印机()适应我的一个应用程序。例如,打印机将PDF打印到文件中,并且似乎还具有启动应用程序的功能。我需要抓取PDF到我自己的应用程序处理在这一点上,用户需要能够附加更多的PDF打印到这台打印机 我计划处理它的方法是让应用程序在每次打开文件夹时检查该文件夹中的新文件,并在打印新文件时调用命令。是否有其他

好的,我要做的就是创建一个程序,当它已经执行时,可以再次“执行”,检测已经存在的进程,而不是创建另一个进程,在现有进程中执行一个函数

有什么想法吗

我可能在这方面完全错了。我正在尝试使这个开源虚拟打印机()适应我的一个应用程序。例如,打印机将PDF打印到文件中,并且似乎还具有启动应用程序的功能。我需要抓取PDF到我自己的应用程序处理在这一点上,用户需要能够附加更多的PDF打印到这台打印机


我计划处理它的方法是让应用程序在每次打开文件夹时检查该文件夹中的新文件,并在打印新文件时调用命令。是否有其他方法可以更直接地将pdf数据导入正在运行的进程?

1:典型的解决方案是为此使用命名的互斥锁。更多细节

2:使用(可能是
FindWindowEx
?)和(如果需要)某种方式来获取在两个进程之间定位
HWND
的信息。很抱歉,我不能说得更清楚了,有太多的方法可以做到这一点,它因应用程序而异


3:知道其他应用程序正在运行后,您可以使用自己的
UINT消息(确保它不会与现有消息冲突),并确保处理消息循环中的特殊消息。

1:典型的解决方案是为此使用命名互斥体。更多细节

2:使用(可能是
FindWindowEx
?)和(如果需要)某种方式来获取在两个进程之间定位
HWND
的信息。很抱歉,我不能说得更清楚了,有太多的方法可以做到这一点,它因应用程序而异


3:在您知道其他应用程序正在运行后,您可以使用自己的
UINT消息(确保它不会与现有消息冲突),并确保处理消息循环中的特殊消息。

听起来您可能想开始搜索有关正在运行的对象表的信息。。。下面是MFC客户端调用.net应用程序的示例,该应用程序在运行对象表中注册自身,以便它们可以执行进程间通信


你到底想在这里做什么,我相信你有一个很好的理由来解释你正在做的事情,但可能还有其他方法可以以更简单的方式获得相同的结果。

听起来你可能想开始在谷歌上搜索关于运行对象表的信息。。。下面是MFC客户端调用.net应用程序的示例,该应用程序在运行对象表中注册自身,以便它们可以执行进程间通信


你到底想在这里做什么,我相信你有很好的理由来解释你所做的事情,但可能还有其他方法可以以更简单的方式获得相同的结果。

答案分为两个阶段:

我正在使用Win32 API程序,而不是MFC/.net

  • 如前所述,命名为mutexs
  • WM_用户消息。在消息循环中,设置一个案例来处理您定义的消息。此消息将导致执行目标函数

  • 基本上,在win32 api中查找进程间通信。

    答案分为两个阶段:

    我正在使用Win32 API程序,而不是MFC/.net

  • 如前所述,命名为mutexs
  • WM_用户消息。在消息循环中,设置一个案例来处理您定义的消息。此消息将导致执行目标函数

  • 基本上,在win32 api中查找进程间通信。

    这回答了阻止另一个进程的问题,但是否可以向已经运行的进程发送命令?@hmind:这是第二阶段,您需要使用进程间通信机制让第一个进程知道应该做什么。如果您有一个窗口句柄,请使用SendMessage、WM_COPYDATA,如果您没有,请使用命名管道。这些是显而易见的选择,还有其他选择。抱歉:为了清楚起见,我修改了我的答案。这回答了阻止另一个进程,但是有可能向已经运行的进程发送命令吗?@hmind:这是第二阶段,您需要使用进程间通信机制让第一个进程知道应该做什么。如果您有一个窗口句柄,请使用SendMessage、WM_COPYDATA,如果您没有,请使用命名管道。这些是显而易见的选择,还有其他选择。对不起,为了清楚起见,我修改了我的答案。