Проверьте, запущено ли приложение? - PullRequest
1 голос
/ 26 сентября 2019

Я хочу проверить, работает программа или нет.Например, проверьте, что программа (блокнот) запущена.

Я попробовал этот код:

Process[] pname = Process.GetProcessesByName("App name");
if (pname.Length != 0) { 
   //run 
}

Я хочу проверить.Но когда пакет проверяется, программа (имя приложения) останавливается.И всякий раз, когда операция проверки завершается, программа (имя приложения) запускается

public void BS() 
    bool key = true;
    while (key) {
        Process[] pname = Process.GetProcessesByName("appname");
        if (pname.Length != 0) {
            textBox1.Text += "run";
        } else {
            key = false;
            textBox1.Text += "stop";
        }
    }
}

Программа appname.exe должна продолжать работать в любом случае, но когда я помещаю это в форму, чтобы проверить appname.exeпрограмма appname.exe останавливается.

Всякий раз, когда цикл останавливается, запускается appname.exe.

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

Это способ сделать это с именем:

Process[] pname = Process.GetProcessesByName("notepad");
if (pname.Length == 0)
  MessageBox.Show("nothing");
else
  MessageBox.Show("run");

Вы можете зациклить весь процесс, чтобы получить идентификатор для последующей манипуляции:

Process[] processlist = Process.GetProcesses();
foreach(Process theprocess in processlist){
   Console.WriteLine("Process: {0} ID: {1}", theprocess.ProcessName, theprocess.Id);
}
0 голосов
/ 26 сентября 2019

Ваша программа входит в бесконечный цикл, который может привести к остановке и запуску приложения.

Попробуйте перевести поток в спящий режим между проверками еще раз.

public void BS()
{
    bool key = true;
    while (key)
    {
        Process[] pname = Process.GetProcessesByName("appname");
        if (pname.Length != 0)
        {
            textBox1.Text += "run";
        }
        else
        {
            key = false;
            textBox1.Text += "stop";
        }
        System.Threading.Thread.Sleep(1000); //For 1 Second
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...