У меня есть класс, который обращается к API win32, чтобы вытащить местоположение, размер, состояние и край панели задач. Я использую класс, чтобы знать, где создавать предупреждения, в зависимости от того, где находится панель задач. У меня есть метод, который обновляет местоположение предупреждений в зависимости от того, когда панель задач находится, когда генерируется или удаляется новое предупреждение.Может ли обнаружено перемещение панели задач?
Есть ли способ обнаружить, когда панель задач перемещается, поэтому я могу вызвать метод обновления? Таким образом, если пользователь перемещает панель задач, предупреждения перемещаются в соответствующее место, а не находятся в смешном месте до появления нового предупреждения или удаляются.
Моя мысль заключалась в том, чтобы проверить таймер на текущий объект панели задач, который я генерировал последним, с новой, каждую секунду или около того, и вызывая метод обновления, если что-то изменится. Мне просто интересно, есть ли «более простой» или «лучший» способ сделать это.
(с помощью Visual Studio 2010 C#)
TL; DR нужно определить, когда панель задач перемещается для вызова метода.
Нет, только не пользователи не постоянно перемещать панель задач вокруг. Pinvoke SHAppBarMessage() с ABM_GETTASKBARPOS, чтобы узнать, где находится панель, чтобы разместить новое окно предупреждения. Если вы хотите сделать это по таймеру, тогда нет ничего плохого в этом, если вы не делаете этого каждые миллисекунды. –
Правильный способ добиться этого - запросить позицию панели задач непосредственно перед отображением вашего предупреждения. Уведомление при перемещении панели задач или использовании таймера будет совершенно ненужным. –
У меня уже есть это, глядя на местоположение панели задач, когда приложение запускается или когда генерируется/удаляется новое предупреждение, а затем обновляется местоположение предупреждений. Моя проблема заключается в том, что эта система оповещения будет использоваться редко, но предупреждения, вероятно, останутся на экране в течение определенного периода времени на компьютере пользователя до тех пор, пока проблема не закончится. Таким образом, вероятность перемещения панели задач, но предупреждения, которые не двигаются, могут быть проблемой, о которой люди будут жаловаться. – flip66