窗口和无窗口应用程序

时间:2015-07-12 21:04:44

标签: c# .net vb.net winforms events

我正在使用VB.NET 2013 Express。

我有一个包含两个项目的解决方案,假设 AA BB

AA 是常规的WinForms应用。

BB 是一款无窗口的WinForms应用。

在整个会话期间,

AA 可能会多次打开和关闭。当 AA 打开时,应该会看到 BB 是否已在运行,如果没有,则启动它。

BB 将一直运行,直到PC(Windows 7)关机。

如果 BB 已经在运行,我需要某种测试方法。

我尝试将状态写入文件,但我不知道如何在 BB 上获得结束事件以重置下一个会话的状态。

如果可以避免,我真的不想在计算机的启动菜单中添加任何东西。还有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

bool bbexists = System.Diagnostics.Process.GetProcessesByName("BB").Length > 0 ;

如果需要,您可以获取/检查BB流程名称:

System.Diagnostics.Process.Process.GetCurrentProcess.ProcessName 

答案 1 :(得分:1)

这取决于你需要什么,但有两种方式可以想到。

检查BB流程是否正在运行

在我看来,这是最简单,最快捷的方式。只需检查一下BB进程是否正在运行,然后执行任何操作:

bool IsProcessRunning(string processName)
{
        return (System.Diagnostics.Process.GetProcessesByName(processName).Length != 0);
}

将BB设为单个实例表单,每次从AA

调用它

请参阅这篇关于制作单实例WinForms的文章

What is the correct way to create a single instance application?

这样你每次都可以打电话给BB而无需先检查它是否正在运行。