Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
894
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
FlashWindowEx FLASHW_STOP по-прежнему сохраняет цвет панели задач
Я разрабатываю приложение, которое управляет машиной.
Когда я получаю ошибку от машины, пользователи должны быть в состоянии непосредственно заметить ее, один из способов, который выполняется, - это мигание лотка на панели задач. Когда устройство устранит ошибку, лоток перестанет мигать.
Есть одно небольшое раздражение с помощью функции FlashWindowEx, когда я очищаю мигание окна, оно остается (в моем случае winXP) оранжевым (не мигает).
[Flags]
public enum FlashMode {
///
/// Stop flashing. The system restores the window to its original state.
///
FLASHW_STOP = 0,
///
/// Flash the window caption.
///
FLASHW_CAPTION = 1,
///
/// Flash the taskbar button.
///
FLASHW_TRAY = 2,
///
/// Flash both the window caption and taskbar button.
/// This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags.
///
FLASHW_ALL = 3,
///
/// Flash continuously, until the FLASHW_STOP flag is set.
///
FLASHW_TIMER = 4,
///
/// Flash continuously until the window comes to the foreground.
///
FLASHW_TIMERNOFG = 12
}
public static bool FlashWindowEx(IntPtr hWnd, FlashMode fm) {
FLASHWINFO fInfo = new FLASHWINFO();
fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo));
fInfo.hwnd = hWnd;
fInfo.dwFlags = (UInt32)fm;
fInfo.uCount = UInt32.MaxValue;
fInfo.dwTimeout = 0;
return FlashWindowEx(ref fInfo);
}
[StructLayout(LayoutKind.Sequential)]
public struct FLASHWINFO {
public UInt32 cbSize;
public IntPtr hwnd;
public UInt32 dwFlags;
public UInt32 uCount;
public UInt32 dwTimeout;
}
В моем случае я использую FLASHW_TRAY, чтобы начать мигать и FLASHW_STOP, чтобы остановить мигание.
Я делаю что-то неправильно или это известная ошибка WinXP и есть ли исправление для нее?
Поведение такое же, когда окно перестает мигать так долго, как это должно быть: кнопка панели задач остается цветной. Я не думаю, что это ошибка. Если вы подумаете об этом, когда вы используете FLASHW_STOP, мигание действительно останавливается, но смысл мигания заключается в том, чтобы привлечь внимание пользователя. Кнопка остается цветной, потому что пользователь все еще не мог посмотреть вниз и обнаружить, какое окно пытается привлечь ее внимание. Сохранение цвета кнопки делает эту информацию доступной.
Вот такая ошибка:
fInfo.uCount = UInt32.MaxValue;
При вызове с параметром FLASHW_STOP необходимо установить значение fInfo.uCount равным нулю. В противном случае, когда вы пытаетесь вызвать остановку, когда кнопка панели задач активна, она будет оставаться активной.
Вы можете проверить примечание о неопределенном поведении здесь: http://msdn.microsoft.com/en-us/library/windows/desktop/ms679348(с V=vs.85).aspx
Я знаю, что это старый пост, но он может помочь другим людям быстро решить эту проблему.
Извините за поздний ответ, меня не было в офисе.
Если это ожидаемая функциональность, я думаю, что это не так полезно, по крайней мере, должен быть сброс.
Теперь я исправил это, просто используя комбинацию FLASHW_ALL | FLASHW_TIMERNOFG .
Кстати, не могу оценить ваши ответы, пока не хватает репутации.