Добрго времени суток! Вот собственно проблема. Я задумал напсиать прогу, которая бы запускала старые игры (Диабло, Фоллаут, СтарКрафт etc) в окне, т.к. в самих играх нельзя поменять разрешение. А если например запустить игру в окне 640х480 то всё будет казаться оч даже ничего. Короче, я вздумал это дело делать при помощи КреатеПроцесс. Там один из параметров, рабочий стол. С которым приложение будет ассоциировано. И вот тут возникла проблема. Рабочий стол то создаётся на всё окно (!), а мне - извращенцу -надо в окошке. Читал МСДН, напсиано что КреатеДесктоп внутреенне обращается к КреатеВиндов, но загнав в W32Dasm я такого там не обнаружил. Пытался просто тупо вызывать OpenDesktop, SetThreadDesktop передавая им хэндл окошка, но всё тщетно. Возникают мысли, что если дизасм "ошибся", то значит можно вызвать КреатеВиндов с какими-то "секртеными" параметрами и окошко окажется Рабочим столом. Есть какие-нить мысли по этому поводу? И ещё... Если всё это окажется невозможным, то возникает другая идея. Создать окно, а в нем подрубиться к своей же тачке (мастером подключения к удалённому столу) и вот там уже запустить игру.
CreateDesktop основную работу делает в ядре, win32k.sys. В частности, одним из выполняемых действий является вызов CreateWindow. Но помимо этого делается ещё куча других действий, так что простым вызовом CreateWindow с "секретными" параметрами обойтись нельзя.