Загрузка...

HELP | C # external process binding

Thread in C# created by sadchill_inactive3895110 Oct 3, 2021. 214 views

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


    Code
    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 Topic starter Oct 4, 2021 Banned 2 Feb 7, 2021
    Кто поможет скину 200р, очень срочно!
     
  3. r3xq1
    r3xq1 Oct 4, 2021 53 Jul 27, 2018
    200р )) Такие смешные суммы.
    Тебе нужно создать службу(отдельный процесс) которая будет следить за процессом через `ManagementEventWatcher` и в случае какого-то действия завершать процесс, очень удобно.
    Пример мониторинга за процессами:
    Code

    // Событие которое что-то делает когда какой-то процесс завершен.
    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
Loading...