Запущена ли программа (служба) + чтение памяти процесса - 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); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д