2017-10-11 42 views
0
  • 我正在C#中创建一个应用程序,用于监视某些应用程序,所以如何知道运行EXE的时间(例如:记事本)。如何知道应用程序何时启动?

  • 我试过使用timer运行检查if (Process.GetProcessesByName("process_name").Length > 0)每1秒但可能不是好方法。

+0

你究竟想知道什么?给定的应用程序(如记事本)目前是否正在运行?或者你想知道它的执行时间,因为你尝试使用计时器 –

+0

我想知道什么时候记事本启动,我试图使用if(Process.GetProcessesByName(“process_name”)。长度> 0)每1s。 – jimbo

+0

那么你已经做了正确的事情 – BugFinder

回答

0

我认为最好的办法是设置计时器,它会检查运行的进程,比如说5秒。在计时器Tick情况下,检查通过它运行的进程的名字

// This will return an empty array if notepad isn't running. 
Process[] localByName = Process.GetProcessesByName("notepad"); 

看看MSDN documentation

0

我建立同为U上的一个应用程序。这是我的解决方案:

public void findProcess(string processName) 
    { 
     BackgroundWorker bg = new BackgroundWorker(); 
     bg.DoWork += (object sender, DoWorkEventArgs e){ 
      while(true) 
      { 
       Process[] process = Process.GetProcesses(); 
       foreach(var p in process) 
        if(p.ProcessName.Equals(processName)) 
        { 
         // TODO: 
        } 

       Thread.Sleep(1000); 
      }    
     }; 
    } 
相关问题