我正在使用VB.NET 2013 Express。
我有一个包含两个项目的解决方案,假设 AA 和 BB 。
AA 是常规的WinForms应用。
BB 是一款无窗口的WinForms应用。
在整个会话期间,AA 可能会多次打开和关闭。当 AA 打开时,应该会看到 BB 是否已在运行,如果没有,则启动它。
BB 将一直运行,直到PC(Windows 7)关机。
如果 BB 已经在运行,我需要某种测试方法。
我尝试将状态写入文件,但我不知道如何在 BB 上获得结束事件以重置下一个会话的状态。
如果可以避免,我真的不想在计算机的启动菜单中添加任何东西。还有更好的方法吗?
答案 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而无需先检查它是否正在运行。