Загрузка...

HELP | Привязка внешнего процесса С#

Тема в разделе C# создана пользователем sadchill_inactive3895110 3 окт 2021. 211 просмотров

  1. sadchill_inactive3895110
    sadchill_inactive3895110 Автор темы 3 окт 2021 Заблокирован(а) 2 7 фев 2021
    Здравствуйте, нужна помощь знатка, как привязать внешний процесс в своем приложении?
    Пример - мое приложение запускает некое приложение, нужно если процесс моего приложения завершался, также и завершился процесс приложения которое было запущено моим приложением.


    Код
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = @"C:\ProgramData\123\123.exe";
    startInfo.Arguments = @" -start";
    startInfo.RedirectStandardOutput = true;
    startInfo.RedirectStandardError = true;
    startInfo.UseShellExecute = false;
    startInfo.CreateNoWindow = true;
    Process process = new Process();
    process.StartInfo = startInfo;
    process.Start();
    process.WaitForExit();
     
  2. sadchill_inactive3895110
    sadchill_inactive3895110 Автор темы 4 окт 2021 Заблокирован(а) 2 7 фев 2021
    Кто поможет скину 200р, очень срочно!
     
  3. r3xq1
    200р )) Такие смешные суммы.
    Тебе нужно создать службу(отдельный процесс) которая будет следить за процессом через `ManagementEventWatcher` и в случае какого-то действия завершать процесс, очень удобно.
    Пример мониторинга за процессами:
    Код

    // Событие которое что-то делает когда какой-то процесс завершен.
    private static void StopWatch_EventArrived(object sender, EventArrivedEventArgs e)
    {
    Console.Beep(); // Звуковой сигнал Windows
    File.AppendAllText("Watcher.txt", $"Завершён процесс: { e.NewEvent.Properties["ProcessName"]?.Value}\r\n"); // Запись в файл например процесса который завершился
    }
    // Метод который начинает слежку за процессами
    private static void MonitoringProcess()
    {
    // наблюдатель событий изменений
    using var stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"));
    stopWatch.EventArrived += StopWatch_EventArrived; // Подключаем событие
    stopWatch.Start(); // Запускаем слежку
    }
    Можно следить и за определённым процессом, или сверять какой-либо процесс и выполнять определённые действия...
     
Загрузка...
Top