Запущена ли программа (служба) + чтение памяти процесса - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток.
Спасибо всем кто, смотрели мою предыдущую тему. (спасибо нажал в ответ)

первая часть темы

Есть служба (назовем ее serv), и она время от времени падает с ошибкой (когда заходишь через терминал, получаешь окно ошибки при входе) Для автоматического перезапуска serv, разрабатываю вторую службу (назовем ее serv_restarter). Так вот, программа serv_restarter должна наблюдать за активностью, нахождением в списке процессов программы serv через определенное время, (для этого есть const int Time_Check = 300) и при отсутствии serv, запускать службу serv.

Вопросы:

1) как получить список активных процессов? 2) как управлять службами (в данном случае, запустить serv)

вопрос по второй части темы:

Имея список процессов, как прочитать определенный адрес памяти этого процесса? Или всетаки я изначально не прав в том, что можно читать только адреса памяти, а не память процесса? Поясню на примере. Есть запущенный процесс serv. В памяти которого есть переменные, где находится текущее число запущенных игр, описание их и прочих параметров. Для их просмотра можно непосредственно подключаться к процессу serv через телнет, но я желаю читать напрямую через стороннюю программу, которая будет напрямую обращаться к памяти serv.exe Есть конечно вариант эмулировать соединение, на php такое делал. Вопрос 3) как прочитать память запущенной программы. Зараннее спасибо.

Решение задачи: «Запущена ли программа (служба) + чтение памяти процесса»

textual
Листинг программы
System.Diagnostics.Process[] AllPROCESSES;
 
private void Run_List_Processes()
        {
            AllPROCESSES = System.Diagnostics.Process.GetProcesses();
            h.Clear();
            combo.Items.Clear();
            foreach (System.Diagnostics.Process x in AllPROCESSES)
            {
 
                string s2 = String.Format("{0,-30} {1}", x.ProcessName, x.WorkingSet64 / 1024+" kb");
                h[x.ProcessName] = s2;
                combo.Items.Add(s2);
 
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы