Можно ли как то узнать у приложения\процесса что то вроде времени бездействия?
т.е. есть например chrome, его свернули и работают дальше в офисе, надо что бы спустя 5 минут chrome закрылся, если пользователь к нему не обращается, если обратился, то счетчик обнуляется.
ПРоблема только в том как можно получит этот простой конкретного приложения? и можно ли?
Этот топик читают: Гость
Ответов: 34
Рейтинг: 0
|
|||
карма: 0 |
|
Ответов: 1926
Рейтинг: 172
|
|||
Если своего, то http://forum.hiasm.com/topic/8707.
|
|||
карма: 9 |
|
Ответов: 5227
Рейтинг: 587
|
|||
наверняка есть какое то сообщение и его надо тупо ловить (это не утверждение но мысли в слух )
Редактировалось 1 раз(а), последний 2019-01-24 19:31:01 |
|||
карма: 4 |
|
Ответов: 1926
Рейтинг: 172
|
|||
andrestudio, сообщения-то простые: WM_KEYFIRST..WM_KEYLAST, WM_MOUSEFIRST..WM_MOUSELAST. Остаётся только отлавливать их для конкретного приложения, видимо, какие-то хуки ставить...
|
|||
карма: 9 |
|
Ответов: 5227
Рейтинг: 587
|
|||
ну так вроде делал такое http://forum.hiasm.com/topic/57290
есть более новое решение (здесь его не публиковал кажись) которое можно в компонент завернуть. |
|||
карма: 4 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
andrestudio писал(а): есть более новое решение (здесь его не публиковал кажись) которое можно в компонент завернуть.Вообще-то это интересная тема, и че не завернул в компонент, хотя бы код выложил посмотреть. |
|||
карма: 22 |
|
Ответов: 5227
Рейтинг: 587
|
|||
nesco писал(а): и че не завернул в компонентАга, и типа на svn будет компонент от andrestudio? Чёт верится с трудом nesco писал(а): хотя бы код выложил посмотретьА чтож не выложить, пожалуйста
|
|||
карма: 4 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
andrestudio писал(а): компонент от andrestudioА почему бы и нет? --- Добавлено в 2019-01-26 12:12:15 Че-то у примера какая-то корявая реакция на закрытие формы после активации хука, пару секунд точно думает. --- Добавлено в 2019-01-26 12:24:41 Интересно, а есть ли API, который выдает активность окна без всяких хуков, на уровне ядра, по типу активности файловой системы? --- Добавлено в 2019-01-26 12:48:51 А можно еще и так определять активность своего приложения Схема
Редактировалось 6 раз(а), последний 2019-01-26 13:00:38 |
|||
карма: 22 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Как-то интересовался этой темой.
Подходящего,в виде Callback-ов, ничего не нашел. Есть какая-то функция и функция-Ex, сейчас не помню, которая возвращает состояние объекта - ожидание, активный не активный, но... Но ей, я так понимаю, надо мониторить постоянно мониторить объект, чтобы понять как долго он находится в том, или ином состоянии. С таким-же успехом можно мониторить загрузку процессора и изменение памяти в процессе - полная ерунда получается. |
|||
карма: 6 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
flint2 писал(а): С таким-же успехом можно мониторить загрузку процессораЧто и показано у меня в примере. |
|||
карма: 22 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Крайне низка вероятность, что в момент опроса будет зафиксировано изменение.
Я даже объединял по or загрузку - наличие изменения процессора и памяти. Опрос должен быть раз пять в секунду, а то и больше. Всё, что с таймером, не изящно получается. Редактировалось 1 раз(а), последний 2019-01-26 13:20:40 |
|||
карма: 6 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
flint2 писал(а): Всё, что с таймером, не изящно получается.В примере работает не таймер, там встроенный параллельный поток с нулевой задержкой. flint2 писал(а): Опрос должен быть раз пять в секунду, а то и больше.Если к приложению никто не обращается или его загрузка ниже определенного значения, то пофиг какой там опрос. Винда не риал-тайм система (плюс минус лаптя), и не надо из нее выдавливать то, на что она не способна по определению. У таймера, предположим, установлена минута на закрытие, какая там разница на сколько миллисекунд раньше или позже произойдет закрытие приложения. Пример показывает как реализовать отслеживание конкретно по заданному ТС вопросу ZloiDed писал(а): Можно ли как то узнать у приложения\процесса что то вроде времени бездействия? т.е. есть например chrome, его свернули и работают дальше в офисе, надо что бы спустя 5 минут chrome закрылся, если пользователь к нему не обращается, если обратился, то счетчик обнуляется. 5 минут, Карл, какие там реал-тайм миллисекунды? С Хромом хреново другое -- у него все окна это независимые процессы и надо отслеживать общую загрузку всех этих процессов. Ну есть, конечно, вероятность, что ты попытаешься активировать приложение, а ему уже пошла команда на закрытие, но нефиг тогда мять мягкие места столько времени. Редактировалось 3 раз(а), последний 2019-01-26 14:06:45 |
|||
карма: 22 |
|
Ответов: 2059
Рейтинг: 132
|
|||
5 минут, Карл, какие там реал-тайм миллисекунды? Я про то, что в один момент загрузка есть, а потом на две-три секунды падает до нуля, а следующие опять возросла. И надо-же, нас угораздило попасть в момент, когда она упала до нуля. Что касается chrome можно и по хуку и по загрузке, сам хотел предложить. А если не привязываться к частному случаю... Вот пример: Минут двадцать назад запустил программку - она ищет сочетания слов на определённую тему в архиве библиотеки. Библиотека 142 Г. работать это дело будет 3-5 часов. Фокуса на окошке тоже не будет такое-же время, так что хук 'мимо денег'. Активность, что показывают средства Windows, показывают всплески загрузки в нечастые моменты открытия\распаковки файлов, и то, когда мониторинг попадает на этот момент. Редактировалось 1 раз(а), последний 2019-01-26 14:58:07 |
|||
карма: 6 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Я вообще не понимаю о чём тут дрова колют. Ну есть тут инцидент и что Ведь и так ясно что частный случай зачем дрова то колоть Моя цель была другой. Из ТУЕВА ХУЧА горизонтальных связей сделать одну вертикальную в СВОЁМ приложении Ладно, можно считать что опять мухи на слонов напали.
|
|||
карма: 4 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Ведь и так ясно что частный случай зачем дрова то колоть
В частном случае и вопросов не возникает. В частном случае и костыли по росту можно подобрать. Хотелось-бы научиться ловить рыбу. |
|||
карма: 6 |
|