基本上我需要我的应用程序从系统启动一直运行到系统关闭。我想出了以下方法:创建MyApp.exe和MyService.exeMyApp应该将MyService安装为服务MyService应该在启动时运行并定期检查MyApp是否正在运行。如果不是,那就开始吧。这是我为我的服务编写的代码:protectedoverridevoidOnStart(string[]args){while(true){intprocessesCount=Process.GetProcessesByName(Settings.Default.MyAppName).Count()+Process.GetProcess
在对这个问题进行了大量搜索之后,我仍然面临着检查正在运行的进程是否已完成的问题。当用户点击GUI中的“开始”按钮时,程序会运行大约5秒钟然后关闭。完成后,我想做点什么(例如,GUI中的绿色标记)。我的问题是“GetProcessesByName”显然看不到程序,这很奇怪,因为我在任务管理器中看到它。程序名称是quartus_pgm.exe。看下面的代码,我试过quartus_pgm,或者quartus_pgm.exe,或者quartus_pgm.exe32(在任务管理器中看到)但是什么都没有!如果我输入“cmd”,它会看到它(quartus_pgm是从cmd调用的),但这不是我要找的。
我试图在C#中关闭一个进程,但我如何检查它是否先打开?用户要求此功能,其中一些用户仍将使用其他进程的关闭按钮。所以,现在工作正常:Process.GetProcessesByName("ProcessName")[0].CloseMainWindow();现在,我如何首先检查它是否存在,这是行不通的:if(Process.GetProcessesByName("ProcessName")[0]!=null){...} 最佳答案 尝试这样做以避免进程在第一次调用GetProcessesByName后关闭的竞争条件:Process[]p