Я хочу написать для себя простенький сервис для отслеживания того, с какими программами я работаю в течении дня и сколько времени на них трачу. Как я представляю работу такой программы? У меня на ПК в фоне должна работать программа, которая будет мониторить текущее активное окно и то, сколько оно активно. На сервер будут отправляться данные такого типа:
Процесс Был активен phpstrom.exe 3600
Ну и далее эти данные будут выводиться в виде графиков. Вопрос — можно ли реализовать это на C#? К сожалению, у меня нет опыта разработки софта под Windows, по этому, я понятия не имею, что мне нужно использовать. Не могли бы вы подсказать технологию и пример того, как можно получить имя процесса текущего активного окна?
Отслеживать
задан 9 июл 2017 в 9:06
Илья Бизунов Илья Бизунов
1,848 17 17 серебряных знаков 35 35 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
То что вы хотите можно сделать с использованием winapi функций. Вам понадобятся две: GetForegroundWindow, GetWindowThreadProcessId
«Пригожина убьют»: что ждет главу ЧВК «Вагнер» #пригожин #война #путин #shorts
По ссылкам можно найти описание параметров функций и в какой DLL-библиотеке они находятся. Их описание нужно объявить в c# следующим образом:
[DllImport(«user32.dll»)] public static extern IntPtr GetForegroundWindow(); [DllImport(«user32.dll»)] public static extern UInt32 GetWindowThreadProcessId(IntPtr hwnd, ref Int32 pid);
После этого ими можно пользоваться. Первая функция получает дескриптор активного окна, вторая — получает идентификатор процесса по дескриптору окна. В пространстве System.Diagnostics есть класс Process , с помощью которого можно получить данные о процессе. Ну как минимум заголовок окна. Вот пример использования:
IntPtr h = GetForegroundWindow(); int pid = 0; GetWindowThreadProcessId(h, ref pid); Process p = Process.GetProcessById(pid); Console.Write(«pid: ; window: «, pid, p.MainWindowTitle);
Источник: ru.stackoverflow.com
Как узнать, какому процессу принадлежит текущее окно
Вам наверняка знакома ситуация, когда на экране появляется диалоговое окно, например, сообщение об ошибке, а какому процессу оно принадлежит — неясно. Или же запущено несколько экземпляров приложения, один из них необходимо завершить, но как узнать — какой? К слову, это одна из типичных ситуаций, приключавшихся со мной во времена разработки приложений на Visual FoxPro: отлаживаешь программу, сбой — и в диспетчере задач куча окон «Microsoft Visual FoxPro». В силу унылости архитектурной реализации программы процесс проще убить, но вот какой? Выход из этой ситуации подскажет уже знакомый многим нашим читателям Sysinternals Process Explorer.
Первая брачная ночь в XVI веке♀️ #shorts
На панели инструментов Process Explorer есть кнопка-прицел.
Нажмите на неё левой кнопкой мыши и, не отпуская левой кнопки мыши, наведите «прицел» на интересующее вас окно. Предположим, у меня запущено несколько экземпляров программы «Блокнот», и я хочу знать, к какому процессу относится конкретное окно.
Перетащив прицел на это окно, я увижу процесс в Process Explorer, который любезно установит курсор на нужный экземпляр блокнота в своем окне.
Невероятно полезная функция одного из лучших менеджеров процессов.
А вы пользуетесь Process Explorer? Возможно, вы нашли ему более достойную альтернативу? (к примеру, ваш покорный слуга много лет пользовался программой IArsn TaskInfo, которая составляет довольно достойную конкуренцию разработке Марка Руссиновича, но стоит денег). Поделитесь опытом решения подобных задач при помощи вашей любимой утилиты управления процессами — возможно, именно ваш личный опыт окажется полезным на практике!
Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.
Судя по тому, что вы читаете этот текст, вы дочитали эту статью до конца. Если она вам понравилась, поделитесь, пожалуйста, с помощью кнопок ниже. Спасибо за вашу поддержку!
Вы здесь: Главная страница » Windows » Как узнать, какому процессу принадлежит текущее окно
Публикации по теме
- Как удалить пункт «Добавить в избранное» из контекстного меню в Windows 11
- Как в Windows 11 закрыть зависшие приложения
- Как в Windows 11 открывать Проводник в папке Этот Компьютер, OneDrive или Загрузки
- Как в Windows 11 включить вкладки в проводнике
- Как в Windows 11 удалить «Открыть в Терминале Windows» из меню
- Как в Windows 11 удалить USB диски из левой панели Проводника
- Как в Windows 11 изменить имя копии файла по умолчанию
- Как в Windows 11 изменить действие при перетаскивании по умолчанию
- Как в Windows 11 отключить добавление текста «- Ярлык» для ярлыков
- Как в Windows 11 удалить OneDrive из Проводника
- Компактный вид в Проводнике: уменьшить отступы между файлами
- Контекстное меню «Перезапустить Проводник»
- Как в Windows 11 показать скрытые файлы в Проводнике
- Как в Windows 11 восстановить классический Проводник с лентой
- Отсутствует новый Проводник в Windows 11 — решение проблемы
Сергей Ткаченко создал этот сайт в далёком 2009 году, и с тех пор продолжает над ним работать, публикуя новые материалы о Windows и её приложениях практически каждый день. Посмотреть все записи автора Сергей Ткаченко
Автор Сергей Ткаченко Опубликовано 15 октября 2011 02 августа 2022 Рубрики Windows Метки Проводник, Процессы
Социальные сети
- Winrevew в Telegram
- Winreview в Twitter
Избранное
- Winaero Tweaker — моя всё-в-одном утилита
- Как разблокировать сразу все файлы в папке Загрузки в Windows 10
- Команды ms-settings Windows 11
- Контекстное меню Изменить владельца для файлов и папок в Windows 10
- Редактор реестра для новичка и не только
Источник: winreviewer.com
Ошибка при запуске. Как отключить окно ошибки
При запуске Windows у многих пользователей выскакивают различные ошибки, которые они закрывают и продолжают работать играть дальше, так вот, со временем может оказаться что этих ошибок скопилось достаточно много и на их закрытии стало уходить много времени да и компьютер стал загружаться гораздо дольше привычного и «притормаживать» там где раньше «летал».
Ситуация в принципе типичная и не требует вмешательства специалистов, с этим должен уметь справляться каждый сам, в конце концов, вы ведь протираете фары на своей машине если они испачкались, не ищите ведь автомойку посреди трассы.
Как удалить нежелательные программы или программы которые выпадают в ошибку при запуске Windows
Вчера мне прилетел в ЛС вот такой скриншот и просьба помочь, так как эти просьбы не единичные ловите статью как избавиться от данной напасти. Для удаления нежелательной программы воспользуемся для начала стандартными средствами Windows, для этого нужно зайти в
Пуск -> Панель управления -> Установка и удаление программ
если у вас установлен Windows 8, 8.1 или 10 то можно просто щелкнуть ПКМ по меню Пуск и выбрать в контекстном меню Программы и компоненты
Найти в списке установленных программ нежелательную, удалить ее и перезагрузиться, в данном случае мешает программа Adobe Acrobat Distiller, статью отошлю сейчас человеку и пусть попробует самостоятельно ее удалить.
Бывает, что пользователь не может понять к какой программе принадлежит окно ошибки, для этого существуют комментарии, присылайте свои скриншоты мы будем рады вам помочь. Также бывает что программа была удаленна неправильно и файлов исполняющих запускудаление нету на компьютере, самым элементарным для вас в такой ситуации будет удалить все оставшиеся файлы программы вручную, найдя ее на компьютере, и зайдя в автозагрузку системы, отключить автозапуск нежелательной программы, чтобы попасть в Автозапуск, достаточно на клавиатуре нажать Ctrl+Shift+Esc и сверху перейти на вкладку Автозагрузка (работает на Windows 8,8.1,10),
Как выглядит автозагрузка
если у вас устаревшая версия Windows то в автозагрузку можно попасть набрав в командной строке
msconfig
нажав Ок и также перейти сверху на вкладку Автозагрузка
Выбирайте программу которая Вам не нужна или мешает или вы не хотите чтобы она запускалась при старте Windows и жмите на ней правой кнопкой мыши (ПКМ) в открывшемся меню выбирайте пункт Отключить и на этом в принципе все, закрываете Автозагрузку и перезагружаетесь
Бывают ситуации когда с помощью стандартных средств удалить не получается, тогда можно воспользоваться специализированным софтом, коего на просторах сети полно, как платного так и бесплатного, мы еще рассмотрим пару бесплатных вариантов, при поступлении ваших вопросов, или комментариев к данной статье, если таким способом у вас не получилось удалить из Windows ошибку при запуске или нежелательную программу.
Спасибо за Ваши репосты!скачать dle 12.1
Источник: komp.pw