Мне нужно скрыть все создаваемые окна в моём приложение, точнее в приложение к которому приатачена моя длл. но это не суть важно. Я перехватил ShowWindow и в nCmdShow писал SW_HIDE, способ работает но как то через Ж..., во первых при создание окна его не видно но фокус оно получает, во вторых бывает так что при таком режиме работы с какогото хрена вываливается Explorer.exe. Какие идеи подскажете по скрытию окон, какие функции хучить?
mrcrown но ведь при создание окна оно изначально невидимое, а потом вызывается ShowWindow чтобы его отобразить.
Да ИЕ по-любому. И ДЛЛ уже догадываемся какая приатаченая, ещё один кработрой детектед) CreateDesktop/CloseDesktop (msdn) или перехват CreateWindowExA, коордитаны кривые ставь, чтоб за десктоп ушло
Последовательность действий: 1) Установить перехват ф-ий CreateWindow, CreateDialog, DialogBox. Всем перехватываемым окнам посылать WM_HIDE. 2) Найти все окна, которые уже созданы (и поэтому они отображаются) и послать им WM_HIDE.
))) (kero имеет в виду, что такой константы не существует. Есть SW_HIDE, используемая в ShowWindow) На самом деле, окну надо послать WM_SHOWWINDOW, с нужными wParam и lParam. Однако, если в соответствующих процедурах стоит обработчик, который по каким-то своим причинам не собирается скрывать окна, то этот фокус, конечно же, не пройдет. Как не пройдет и при использовании ShowWindow, потому что в конечном счете это превратится в тот же самый WM_SHOWWINDOW.
А почему нельзя послать сообщение типа WM_HIDE. При получении этого события окно пропадает с экрана и с панели задач тоже.