Показать сообщение отдельно
  #1  
Старый 07.02.2014, 18:53
Sheleh Sheleh вне форума
Прохожий
 
Регистрация: 21.12.2009
Сообщения: 4
Репутация: 10
По умолчанию WDE - Wine Desktop Environment

Wine, на мой взгляд, уже достиг значительных успехов в реализации АПИ подсистемы windows. Но проект заточен под окружение линуха, хотя уже реализованы возможности сделать это окружение средствами самого wine' a. А ведь правда, почему бы не представить такую операционную систему, наподобие андройда, где за железо отвечает линух, а верхний уровень представляет собой win-совместимый слой.
Но это все присказка, мои тараканы. Они меня толкают на создание explorer.exe работоспособного в среде wine, ибо ничего из существующего в этой среде пока не работает.

Я никогда не опускался ниже уровня Delphi, но что то в жизни иногда надо менять, и пусть Delphi в вайне работает нормально, все же я выбрал более идеологически линух-родственную среду - Lazarus. Win32 Lazarus. Который тоже под вайном работает на должном уровне.

Ну и собственно к самому вопросу, касаемо explorer.exe. Его реализацию я начал с taskbar'а. И тут же начались первые несовместимости. Где под ХР все работает как и ожидалось, в вайне не работает ничего. Оно и понятно, вайн не затачивался под управление окнами из собственной среды, и многие функции не реализованы. Стало быть надо как то их в собственном експлорере допиливать мелким надфилем.

Одна из самый острых проблем - как сворачивать приложения, состоящие не из одного окна? Что, делфи, что лазарус, состоят из нескольких разных окон. И посыл родителю SW_MINIMIZE сворачивает только главное, остальные висят как ни в чем не бывало. Т.е. вайн при сворачивании главного не обращает внимания на дочерние, и это надо делать самостоятельно. Я не силен в АПИ, но понимаю, что их как то надо найти и послать им соответствующее сообщение. Что то вроде EnumChildWindows(hwd, @ChildWinMinimize, 0)

Но в этом случае, сворачиваются даже элементы цельных окон, что нам, конечно, совершенно не требуется.

Уважаемые гуру программирования, Гики Всея Руси, подскажите, плз, как перечислить необходимые окна, дабы отправить им весть о необходимости минимизироваться.
Ответить с цитированием