从另一个应用程序启动我的程序

问题描述:

我想知道如何启动另一个应用程序时启动我的C#程序。我只需要这个特定的应用程序来启动我的程序,因为我将从它做一些输出处理。我所说的应用程序不是由我写的。另外,我不想写一个服务。从另一个应用程序启动我的程序

+0

如果OP不控制应该引起他的申请,启动应用程序的源的Process.Start如何去帮助他? – 2010-08-17 22:48:30

+0

感谢Wil P,事实正是如此....请帮助我一个正确的答案。 – ManX 2010-08-17 22:55:55

+0

他可以编写一个小窗口的应用程序,如果另一个应用程序启动,它将使用Process.Start启动他的应用程序。如果他不想写一个服务,他可以把任务放在任务管理器中。如果他无法控制另一个应用程序,他的选择是有限的 – 2010-08-17 22:58:41

什么您可以在您创建所看到here监视你正在寻找的过程中第二个应用程序使用WMI和然后让第二个始终运行的“监视器应用程序”(不一定是服务)启动应用程序,以处理您希望让应用程序运行的应用程序的输出。

我们所做的

其他的事情是将它添加到启动文件夹或通过计划任务调用它来寻找数据处理有我们从用户登录应用程序运行。不知道什么适用于你,但也许可以使用一些选项。

编辑: @ManX IMO监测方法运行得非常好,我没有发现真正的问题,每天在我的应用程序中使用这种方法处理数以千计的报告。我只是寻找新的'输出'数据,在特定地点报告你的情况并相应地处理它们。通常,我们的应用程序以无窗口模式运行,只有在用户需要互动时才会进入前台。在你的情况下,这将是一个新的报告创建时。 .NET框架中有许多工具可以让您编写灵活的轻量级监控应用程序。

找出最适合您并定期检查新报告的计时器之一。这对报告的创建几乎是即时的反应,对用户应该是无缝的。

编辑#2。

看看如何创建Permanent WMI event consumer...然后,您可以使用Process.Start来启动您的应用,正如其他人在您检测到您关心的事件时所建议的那样。

+0

我试图避免监控,这就是为什么我避免写服务。我希望能够从另一个应用程序中触发我的应用程序。我可能是错的,但是监控WMI在服务方面几乎没有优势......请咨询。 – ManX 2010-08-17 23:06:28

+0

由于我以前需要类似的功能,我很久以前就给出了很多想法,而您的避免服务的雄心可能是令人钦佩的,我认为您没有选择余地。它既可以是服务,也可以是启动过程中启动的一个进程,它们都使用WMI。我从来没有解决过自己的问题,所以我不能建议,但我认为@Wil P的链接应该让你朝着正确的方向前进。 – Cyberherbalist 2010-08-18 20:57:30

看起来你想要一些外应用程序的启动触发自己的应用程序的启动。

如果外部应用程序启动时,你可以控制,那么你可以在同一时间让自己的应用程序的开始。例如,如果可以使用批处理文件启动该外部应用程序,那么简直就是将该应用程序包含在批处理中,例如,

echo off 
start OutsideApp.exe 
MyOwnApp.exe 

命令“start”触发OutsideApp.exe并让它在执行批处理中的下一条指令MyOwnApp.exe时运行。

但@ WilP的反应可能会更你在找什么。如果它适合,但我的实施更快。 :-)

+0

我也想到了一个批处理脚本,但它似乎很容易实现。 OP,你从'outsideapp.exe'处理什么样的输出? – 2010-08-17 23:15:33

+0

是的,我希望从其他应用程序触发我的应用程序。其他应用程序的用户是唯一拥有控制权的用户,我的应用程序将为每个用户开始处理。 – ManX 2010-08-17 23:17:10

+0

outsideapp.exe将为每个用户实时处理报告 – ManX 2010-08-17 23:19:09