Хранить события из других программ - PullRequest
2 голосов
/ 13 мая 2011

Я хочу хранить события из других приложений в моем собственном приложении.Примеры событий: когда Word открывается, сворачивается или открывается файл.

Возможно ли такое?

Ответы [ 2 ]

1 голос
/ 13 мая 2011

Запуск программы и открытия файла являются событиями ОС (они включают проверки безопасности) и могут быть получены с помощью встроенных функций аудита Windows.Это не по теме, пересылайте дополнительные вопросы на ServerFault.com

Минимизация программы - это пример сообщения приложения, для получения которого вам необходимо установить ловушку, используя SetWindowsHookEx.Начиная с .NET 4 (которая включает поддержку параллельной работы), это можно сделать с помощью C #, но это не рекомендуется.Одна огромная проблема, о которой вам нужно знать, это то, что ваш код захвата событий НИКОГДА не должен генерировать собственные события, иначе вы запустите цепную реакцию, которая приведет к сбою всех запущенных программ.

0 голосов
/ 15 мая 2011

Использование EventLog.

Вы должны установить EnableRaisingEvents свойство на true

И при добавлении события в указанный журнал событий EntryWritten обработчик событий поднимет

Это самый простой способ справиться с ОС События

пример кода

private void frmMain_Load(object sender, EventArgs e)
{
    System.Diagnostics.EventLog s = new System.Diagnostics.EventLog("Application", ".", "");
    s.EnableRaisingEvents = true;
    s.EntryWritten += delegate(object st, System.Diagnostics.EntryWrittenEventArgs ew)
    {
        MessageBox.Show(ew.Entry.Message);
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...