Узнать, какой процесс сейчас активен (открыт) - 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;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д