Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отслеживание запуска/остановки процессов, Что-то наподобие собственного евентлога 
:(
    Опции темы
FLUX
Дата 26.1.2007, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 26.1.2007

Репутация: нет
Всего: нет



Есть такие объекты, как System.Diagnostics.Eventlog и System.Diagnostics.EventLogTraceListener. Мне хотелось бы записывать куда-то инфу по запуску/остановке, например, Warcraft'а, как мне это сделать, используя их smile ? Самплов нигде на эту тему нет, а в МСДН очень эта тема очень туманно изложена (или это я недостаточно догадлив? smile )
PM MAIL   Вверх
mr.DUDA
Дата 26.1.2007, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Эти классы предназначены для использования в .NET приложении, которое (внимание) их же и и использует, например Trace.WriteLine("аааа !!!").

Прога типа WoW ничего о дотнете не знает, и не поймёт куда ей пихать сообщения о запуске, выгрузке и ошибках. Потому как не знает о дотнете, повторюсь. И тем более не знает о том, что её запускают откуда-то из третьего приложения.


--------------------
user posted image
PM MAIL WWW   Вверх
Softaz
Дата 28.1.2007, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Цитата(FLUX @  26.1.2007,  23:09 Найти цитируемый пост)
инфу по запуску/остановке, например, Warcraft'а


Читаешь структуру SYSTEM_PROCESSES нужного процесса.
В ней есть следующее
Код

struct _SYSTEM_PROCESSES
{
        ULONG                           NextEntryDelta;
        ULONG                           ThreadCount;
        ULONG                           Reserved[6];
        LARGE_INTEGER           CreateTime;
        LARGE_INTEGER           UserTime;
        LARGE_INTEGER           KernelTime;
        UNICODE_STRING          ProcessName;
        KPRIORITY                       BasePriority;
        ULONG                           ProcessId;
        ULONG                           InheritedFromProcessId;
        ULONG                           HandleCount;
        ULONG                           Reserved2[2];
        VM_COUNTERS                     VmCounters;
        IO_COUNTERS                     IoCounters; //windows 2000 only
        struct _SYSTEM_THREADS          Threads[1];
};

Думаю, этих параметров с лихвой хватит.

P.S.: конечно, это не на C#, а на C++. На C# не знаю, как сделать стандартными не глючными методами smile


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
Naum
Дата 29.1.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



Цитата(Softaz @  28.1.2007,  16:47 Найти цитируемый пост)
На C# не знаю, как сделать стандартными не глючными методами

System.Diagnostics.Process в помощь.
По таймеру вызываешь System.Diagnostics.GetProcesses(). Затем проверяешь все эти процессы проверяешь у них MainModule.FileName. И смотришь, если твое приложение, то считай, что оно запущено.  smile 
Если приложение, за которым надо следить, находится не на системном диске можно немного оптимизировать. Вместо таймера использовать FileSystemWatcher и в обработчике его событий проверять процессы.



--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.