@starik-2005

Как проверить, что программа что-то делает (курсор в ней в виде "часиков")?

У меня есть какая-то программа. Ну, допустим, эксель. Я что-то там запустил на вижуалпитоне/бейсике/чем-то-там-еще - не важно. Она у меня это что-то делает. Ну или это какая-то другая программа (архиватор, например), она архивирует что-то очень большое. Ну или это что-то еще.

Так вот, мне нужно узнать, что программа дело свое еще делает или уже сделала. Как я могу понять, что программа уже закончила свое дело? На питоне-ли, на повершелле, на с++ - тоже не сильно важно. Просто хочу понять, крутятся там часики еще над ней или уже закончили. Это вообще возможно?
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ответы на вопрос 3
@rPman
В общем случае не существует способов решить твою задачу.

Если с архиваторами еще можно посмотреть на статистику нагрузки процессора процессом, и если она упала то считать что работа закончена, то с программами, не затрагивающими процессор этого не сделаешь (например загрузка файлов из интернета, тут даже по нагрузке на сеть не поймешь).

Курсор мог бы быть решением если одно но - он меняется только пока этот курсор находится строго над окном приложения, причем над его видимой частью, т.е. если приложение свернуть или оно будет загорожено другими окнами, то этого понять будет нельзя.
Можно написать библиотеку и вешать ее как hook на вызовы winapi SetCursor (для запуска приложения потребуется администраторские права а так же с высокой вероятностью в современных версиях win10-11 это уже будет не так просто сделать, по крайней мере я пользовался одним таким приложением minimize to tray и оно уже не работает), так же это не будет работать с windows store приложениями, а точнее те что написаны на .net и используют среду CLR.

Поэтому, для каждого приложения придется искать свой детектор их занятости.
Ответ написан
Комментировать
GavriKos
@GavriKos
Если программа об этом никак не сообщает - то никак и не проверить )))
В частном случае можно найти прогрессбар и смотреть его заполнение (WinAPI). Смотреть на часики не надо )))
Но какого то общего решения для оконных приложений тут не будет. Другое дело консольные утилиты )
Ответ написан
mindtester
@mindtester Куратор тега Windows
http://iczin.su/hexagram_48
- если вы не писали программу сами, то курсор обычно не меняется...
- если на часы, а также упоминаете exel, похоже на пробу vba
... смотрите на предмет "зацикливания"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы