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

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

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

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

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

textual
Листинг программы
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
public ApplicationState AppState
{
    get
    {
        Process[] processCollection = Process.GetProcessesByName(ProcessName);
        if(processCollection != null && processCollection.Length  >= 1 && 
            processCollection[0] != null)
        {
            IntPtr activeWindowHandle = Win32.GetForegroundWindow();
            //Optional int ProcessID;
            //Optional Win32.GetWindowThreadProcessId(GetForegroundWindow(),out ProcessID)
            foreach(Process wordProcess in processCollection)
            {
                //Optional if( ProcessID == wordProcess.Id ) return ApplicationState.Focused;
                if(wordProcess.MainWindowHandle == activeWindowHandle)
                {
                    return ApplicationState.Focused;
                }
            }
            return ApplicationState.Running;
        }
        return ApplicationState.NotRunning;
    }
}

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


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

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

15   голосов , оценка 4.2 из 5
Похожие ответы