arthur2Но в этом исходнике я убрать флаг не могу, поскольку мне нечем перекомпилировать пример.
Можно было для этого воспользоваться HIEW'ом или OllyDbg
RegisterHotKey - возвращался ноль, пока я не убрал флаг MOD_NOREPEAT
Это всё качество
документации виновато.
Там написано, что на w2k, wxp и wvista этот флаг не поддерживается, но нигде не сказано, что функция при этом не отработает. А я писал на семёрке, там было всё окей. Сейчас пересобрал и выложил новую версию в аттаче.
ХакерЕсли ты (поток) создал окно окно, ты {не можешь себя привязать к другому десктопу}, а не {не можешь переключать десктопы}.
Документация по десктопам настолько кривая, что можно только диву даваться. То что ты сказал вроде как верно должно быть. Но на самом деле не совсем.
Во-первых. Нигде не написано, но
SwitchDestop нифига нормально не отработает, если после неё не вызвать
SetThreadDesktop, передав хендл целевого десктопа. По крайней мере у меня на 7-ке и ХР так и не вышло. Точнее так: на семерке десктоп переключается, но сообщение WM_HOTKEY перестают приходить окну (я тогда делал через очередь сообщений окну) и возвратиться назад получалось только после ребута. На XP заметно переключение, но тут же происходит возврат на исходный десктоп. Мистика какая-то
И я бы так и бился головой, если бы не распотрошил
одну замечательную утилиту Руссиновича и не поглядел, как реализовано там. Получается что
имея окно переключать десктопы мы нормально не сможем, ибо не отработает
SetThreadDesktop. Можете, кстати, проверить у себя на системе: в аттаче несколько экзешников, один из которых после
SwitchDestop не вызывает
SetThreadDesktop. У вас корректно отработает?
Во-вторых. В комментариях к описанию
SetThreadDesktop какой-то умник написал:
SetThreadDesktop will fail if the calling thread has ever had a window or hook on its current desktop.
Т.е. он утверждает, что если поток
имел окно, то функция тоже не отработает. Но это не так! В том же аттаче еще один exe, который перед переключением десктопов выводит MessageBox. Как видите, всё прекрасно переключается. Меня удивляет, почему тот топик до сих пор не подвергся цензуре.
Вот тебе и документация...
А я все практикую лечение травами...