Узнать, какой процесс сейчас активен (открыт) - C#

Узнай цену своей работы

Формулировка задачи:

Можно ли узнать, открыт ли сейчас у пользователя бразуер? То есть, он сейчас в нем чем-то занимается. Например, вбивает в google какой-нибудь запрос. Например, узнать, открыт ли у пользователя блокнот и он набирает текст. Каким способом это можно узнать?

Решение задачи: «Узнать, какой процесс сейчас активен (открыт)»

textual
Листинг программы
  1. [DllImport("user32.dll")]
  2. private static extern IntPtr GetForegroundWindow();
  3. public ApplicationState AppState
  4. {
  5.     get
  6.     {
  7.         Process[] processCollection = Process.GetProcessesByName(ProcessName);
  8.         if(processCollection != null && processCollection.Length  >= 1 &&
  9.             processCollection[0] != null)
  10.         {
  11.             IntPtr activeWindowHandle = Win32.GetForegroundWindow();
  12.             //Optional int ProcessID;
  13.             //Optional Win32.GetWindowThreadProcessId(GetForegroundWindow(),out ProcessID)
  14.             foreach(Process wordProcess in processCollection)
  15.             {
  16.                 //Optional if( ProcessID == wordProcess.Id ) return ApplicationState.Focused;
  17.                 if(wordProcess.MainWindowHandle == activeWindowHandle)
  18.                 {
  19.                     return ApplicationState.Focused;
  20.                 }
  21.             }
  22.             return ApplicationState.Running;
  23.         }
  24.         return ApplicationState.NotRunning;
  25.     }
  26. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы