阻止程序在另一个程序运行时启动(Windows)

时间:2011-10-23 16:04:53

标签: c#

我有2个节目。我想构建一个外部工具,当另一个程序已经运行时,它会阻止其中一个程序启动,反之亦然。 我无法触及两个程序中的任何一个的代码。

我希望最好使用C#,但脚本语言也可以。

任何人都可以帮我理解如何实现它吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

将您的工具编写为在后台运行的Windows服务,如果启动则会终止第二个程序。它可以通过收听WMI事件来查看新流程何时开始,请参阅.NET Events for Process executable start

答案 1 :(得分:2)

有几种方法可以做到这一点。如果您使用的是C#,则应使用GetProcessesByName()获取进程名称。它看起来像这样      Process [] processes = Process.GetProcessesByName(processName); 如果您知道进程名称,则可以终止该进程 或者使用[信号量类](http://msdn.microsoft.com/en-us/library/system.threading.semaphore.aspx)。