Как мне войти в систему каждый раз, когда я запускаю приложение в Windows? - PullRequest
0 голосов
/ 24 декабря 2009

Я бы хотел регистрироваться или записываться каждый раз, когда запускаю приложение, чтобы понять, какие приложения я чаще всего использую в своей системе Windows. Я думал, что смогу создать событие в журнале событий и прослушать его в программе .Net.
Вопросы:

  • Это лучший способ решить эту проблему?
  • Если это так, какую библиотеку .Net мне следует использовать?

Я также открыт для использования Java для решения этой проблемы. Спасибо!

Ответы [ 2 ]

2 голосов
/ 24 декабря 2009

В .NET вы, вероятно, могли бы создать расширение оболочки, которое вы бы регистрировали для программ EXE, которое действительно было бы просто фильтром для расширения EXE. Когда вызывается расширение вашей оболочки, вы запускаете программу (вызывая старую функциональность) после регистрации вашей информации.

Обратите внимание, что вы можете сделать это ТОЛЬКО с .NET 4.0 или выше, который в настоящее время находится в бета-версии. Из-за способа, которым работали предыдущие версии CLR, в процессе одновременно разрешалось запускать только одну версию (включая проводник, процесс ОС).

.NET 4.0 представляет экземпляры CLR Side-by-Side (SxS) в одном и том же процессе, поэтому его можно использовать из .NET 4.0 в качестве механизма для расширений оболочки.

Это также потребует много COM-взаимодействия, но это может быть сделано.


Что касается комментария LWoodyiii, спрашивающего, можно ли это сделать в более старых версиях .NET: Может ли это быть? Да, это можно сделать, но официальный указ от MS таков, что вы не должны этого делать. Причина этого в том, что если кто-то решит запустить расширение оболочки или каким-либо образом взаимодействовать с ОС, используя .NET, а версия будет отличаться от используемой, вы рискуете потерять процесс ОС. .

1 голос
/ 24 декабря 2009

возможно, вы можете попытаться подключить API CreateProcess в масштабе всей системы, используя неуправляемый c ++. а в C # используйте .NET interop для обработки событий / уведомлений от вашего неуправляемого подключаемого модуля.

ссылки по теме:
http://www.codeproject.com/KB/system/hooksys.aspx?msg=1322916
http://www.madshi.net/madCodeHookDescription.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...