使用VB.NET(Compact Framework 2.0)检查进程是否正在运行
我正在开发一个(控制台)应用程序,它应该在启动时执行,并且一直在后台运行(每30分钟执行一次)。使用VB.NET(Compact Framework 2.0)检查进程是否正在运行,vb.net,process,compact-framework,Vb.net,Process,Compact Framework,我正在开发一个(控制台)应用程序,它应该在启动时执行,并且一直在后台运行(每30分钟执行一次)。 在另一个(设备)应用程序中,我如何检查我的控制台应用程序是否正在运行(如果没有运行,则启动它)?我正在使用VB.NET CF 2.0,所有东西都部署在运行WM 6.5 我找到的所有代码示例仅在“standard.NET”上可用。您的“监控”应用程序有几种工作方式(当然比我在这里列出的更多) 使用一个命名的互斥体(您必须P/调用它)。被监控的应用程序将创建并保存它,监控应用程序将定期检查以确保它被保存
在另一个(设备)应用程序中,我如何检查我的控制台应用程序是否正在运行(如果没有运行,则启动它)?
我正在使用
VB.NET CF 2.0
,所有东西都部署在运行WM 6.5
我找到的所有代码示例仅在“standard.NET”上可用。您的“监控”应用程序有几种工作方式(当然比我在这里列出的更多)
FindWindow
的GetWindow
,以查找监控应用程序中始终存在的窗口-通常通过表单文本。如果监控应用程序找不到窗口,则表示监控应用程序未运行我对这个紧凑的框架没有真正的了解,但在正常的框架中,我在应用程序中使用了互斥。一开始,我会将类似于
私有mutexProgram的互斥体注册为New Threading.mutex(True,“Global\”+“MyApp-{451212537372723232535b}”)
(这里有一些随机数)在我的应用程序开始时,我检查这个互斥体,比如Dim MutexExists As Boolean=True尝试Dim As Threading.mutex=Threading.mutex.OpenExisting(“Global\”+“MyApp-{45121253737723232535b}”)Catch MutexExists=False End Try
我不知道这是否适用于您的问题,因此我没有将其作为答案发布,但它可能值得您查看。您可以再详细说明一下吗?比如,那些“随机数”是什么?当创建一个新的互斥体时,我能给它的唯一参数是一个布尔值(在.NET4.5中似乎是可用的),互斥体对象以某种方式用于线程同步(我在任何方面都不是专家,所以我对这方面不太了解)。其中的数字只是互斥体名称的一部分,对于您的应用程序来说应该是唯一的(请参见此处的MSDN)。第二部分主要尝试从程序的第二个实例打开互斥对象。如果它存在,则表示应用程序已在运行,您可以相应地执行操作。如果它不存在,它会抛出一个异常,您知道应用程序没有运行。我发现这可能不适合您。请看这里: