【发布时间】:2011-10-23 16:04:52
【问题描述】:
我有 2 个程序。我想构建一个外部工具,当另一个程序已经在运行时,它可以防止其中一个程序启动,反之亦然。 这两个程序的代码我都不能碰。
我想最好用 C# 来做,但脚本语言也可以。
任何人都可以帮助我了解如何实现它的概念吗?
提前致谢。
【问题讨论】:
标签: c#
我有 2 个程序。我想构建一个外部工具,当另一个程序已经在运行时,它可以防止其中一个程序启动,反之亦然。 这两个程序的代码我都不能碰。
我想最好用 C# 来做,但脚本语言也可以。
任何人都可以帮助我了解如何实现它的概念吗?
提前致谢。
【问题讨论】:
标签: c#
将您的工具编写为 Windows 服务,该服务在后台继续运行,并在第二个程序启动时终止它。它可以通过监听 WMI 事件来了解新进程何时启动,请参阅.NET Events for Process executable start
【讨论】:
有几种方法可以做到这一点。如果您使用 C#,您应该使用 GetProcessesByName() 获取进程名称。它看起来像这样 Process[] 进程 = Process.GetProcessesByName(processName); 如果您知道进程名称,则可以终止该进程 或者使用 [Semaphore Class] (http://msdn.microsoft.com/en-us/library/system.threading.semaphore.aspx)。
【讨论】: