Windows API: можно ли узнать, скрыт ли значок на панели задач пользователем? - PullRequest
1 голос
/ 18 марта 2010

Мне нужно знать, скрыл ли пользователь иконку, добавленную моей программой в область панели задач. Это технически осуществимо?

UPDATE Моя программа - yowindow отображает текущую температуру на значке в системном трее. Я хочу сэкономить нагрузку на сервер, не обновляя погоду для пользователей, которые не видят значок в трее.

Ответы [ 2 ]

3 голосов
/ 18 марта 2010

номер

А что бы вы сделали с этой информацией, даже если бы она была у вас?

(предостережение - я думаю, вы могли бы сделать снимок экрана, выяснить, где находится панель задач, выяснить, где находится системный трей, «разобрать» каждый значок, а затем сравнить все по битам с вашим собственным значком. ..)

Возможно, стоит посмотреть на этот связанный вопрос

На основании первого Изменить к вопросу

Я понимаю вашу точку зрения. Но посмотрите на это из POV дизайнера Windows API. Они предоставили возможность создавать иконки «всегда видимым» образом. И каждый человек + собака пошел вперед и поставил туда значок, предполагая, что пользователь всегда захочет узнать о их продукте (обратите внимание, я не утверждаю, что вы находитесь в этой группе здесь).

Они заметили такое поведение, и теперь, когда они не могут лишить себя возможности создавать эти значки, они хотят предоставить пользователю контроль.

Теперь мы подошли к проблеме. Представьте себе на секунду, что вы менее чем просвещенный разработчик. И если вы обнаружите, что ваш значок был скрыт, вы увидите сообщение, предлагающее пользователю отменить скрытие вашего значка. Может быть, вы делаете это один раз за логин. Может быть, вы делаете это каждые полчаса. Это просто общий уровень раздражения пользователя, похожий на 40 значков, появляющихся в трее, когда пользователю нет дела до большинства из них

Вопрос в том, разрабатывали ли вы API, чтобы разработчики могли определить, действительно ли их значок скрыт. Как вы разрешаете свое доброжелательное использование, в то же время предотвращая поведение в предыдущем абзаце? Потратьте несколько минут, пытаясь притвориться дизайнером Windows API, и попытайтесь написать необходимую функцию (и) (в качестве аргумента, предположим, что раздражающие разработчики не хотят реализовывать интерфейс IAmEvil, или что-то еще, или быть готовым реализовать интерфейс IOnlyDoGood ...)

Надеюсь, ваш значок будет полезен, и пользователи будут либо а) показывать ваш значок, либо б) удалять ваше приложение (если оно не выполняет то, что им нужно / нужно)

1 голос
/ 18 марта 2010

Насколько я знаю, для этого нет API-функции, и нет хорошего решения проблемы. Вы можете сразу после установки показать сообщение из трея, сообщающее пользователю, что значок может быть скрыт. Не то чтобы это помогло, но это все, что вы можете сделать. Я видел программы, которые выдают ошибку пользователю, периодически показывая это сообщение, но это действительно НЕ хорошая вещь.

...