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

Я хочу создать программу, которая контролирует другие программы, работающие в Windows. Он должен знать, например, «Макс Пейн 2 открыт в 16:36» или «Firefox закрыт в 9:52». В идеале, он мог бы определить разницу между тем, когда я на самом деле использую программу, или если у меня есть alt-tabed из нее или если я неактивен. Как мне извлечь эти данные? Может ли кто-нибудь, пожалуйста, просто указать мне правильное направление, чтобы я знал, какую фразу мне нужно гуглить или по какой теме мне нужно подобрать книгу?

Ответы [ 4 ]

5 голосов
/ 22 июня 2010

Вы можете сделать это для перечисления запущенных процессов:

  using System.Diagnostics;

 .......


  Process[] processlist = Process.GetProcesses();

     foreach(Process theprocess in processlist){
     Console.WriteLine(”Process: {0} ID: {1}”, theprocess.ProcessName, theprocess.Id);
  }

Кроме того, вы можете использовать следующие свойства для получения интересной информации:

 theprocess.StartTime (Shows the time the process started)
 theprocess.TotalProcessorTime (Shows the amount of CPU time the process has taken)
 theprocess.Threads ( gives access to the collection of threads in the process)
0 голосов
/ 22 июня 2010

В Windows API есть вспомогательная функция с именем CreateToolhelp32Snapshot .

0 голосов
/ 22 июня 2010

Я бы порекомендовал C #.Вы можете начать с примера @Sander Pham.Ознакомьтесь с этой статьей для получения дополнительной информации: http://msdn.microsoft.com/en-us/library/1f3ys1f9.aspx

Вам придется перечислять локальные процессы каждые несколько секунд или около того, чтобы вы могли отслеживать, какие из них закрываются и открываются.Чтобы выяснить, используются ли они, вы можете использовать некоторые функции Win32, чтобы определить, активны ли окна или нет.Проверьте это для начала: " GetForegroundWindow Function ".

Для примеров в C # просто Google "c # get window focus".

0 голосов
/ 22 июня 2010

Мониторинг сервисов. Регистрируйте данные в базе данных или в виде простых файлов. Службы мониторинга с помощью .NET

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