1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Soft Windows GUI

Тема в разделе "Hard & Soft", создана пользователем Bato-San, 24 дек 2012.

?

Считаете ли вы что:

  1. Стоит изучать, изменять и улучшать внешний вид Windows и его функциональность

    28,6%
  2. Не стоит этим заниматься

    71,4%
  1. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Alex Kagansky, никуда оно не впаяно намертво. Всё по отдельности лежит. Просто win32k.sys всех смущает. Однако контролы и прочие красивости рисует не он. Этим уже вообще user32.dll занимается. Что и требуется для изменения внешнего вида windows. А начиная с XP появилась dll для управления скинами.
     
  2. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Zelya, не переживайте. "Привязать" контекстное меню можно, действительно только к форме. Окну ваши "привязки" по барабану. Чтобы контекстное меню (на самом деле, самое обычное меню) сработало, надо руками прописывать в оконной функции перехват сообщения правого клика. И тогда - руками фигачить на экран это самое меню (ни к чему не привязанное). Ну и все его команды там же - в оконной функции - прописываются.

    ---------- Сообщение добавлено в 18:41 ---------- Предыдущее сообщение размещено в 18:39 ----------

    Alex Kagansky, не слушайте коллегу Bato-San, он все пытается изобрести терминологию, в которой его глупости выглядят правдоподобными.
     
  3. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    Таки да, надо. Совсем про это забыл.
    Нет, привязанное. Оно будет туда команды передавать. А выполнять их будет, таки окошко. А еще желательно грамотно родителя поставить, чтобы меню где-то внизу не выскакивало, насколько я помню.
     
  4. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Zelya, "привязывается" и позиционируется меню одной функцией

    invoke TrackPopupMenu, mnuhWnd, TPM_LEFTALIGN, X, Y, 0, hWnd, 0

    т.е. до момента вывода на экран, оно "не привязано".
     
  5. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.057
    Боюсь, что впаяно. :) Причем со всех сторон.

    Ядро - монолитное, все работает в нулевом кольце (если смотреть с точки зрения исполнения кода).

    API - монолитное, графическая подсистема является неотъемлемой частью (в отличие от QNX, к примеру).

    С точки зрения модульности - ну ок, лежит отдельная либа user32.dll. Можно сказать, что код гуя лежит в отдельном файле. Но это ни на что не влияет.
     
  6. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Alex Kagansky, Замечательно. Монолитный API - это звучит гордо. Особенно в системе построенной на основе DLL. Или это вы так про ядро ? Так покажите же, где графика там приварено намертво ! И почему это я не могу просто не грузить ненужный мне модуль в память (да, я знаю, что ещё куча всего отвалится) или изменить его код так как захочу ? SDK резко сбросил в объёмах от таких утверждений. Остальные аргументы тоже на уровне. Точнее их отсутствие. Смотрим RP9 для win98 и рыдаем от смеха.
     
  7. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.057
    Вообще-то API не имеет отношения к тому, на чем построена система. Его можно сделать хоть на DLL, хоть на веб-сервисах, хоть на черте с рогами. :)

    Смотря что понимать под "приварена". Я в прошлом посте назвал три точки зрения.

    Если смотреть с точки зрения API - вот, пожалуйста:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ff468919(v=vs.85).aspx

    Windows API невозможен без, например, функции ShowWindow. Если вы пишете приложение под это API, то такая функция там есть.

    :)
    Вот эта фраза "да, я знаю, что ещё куча всего отвалится" - ни на что не намекает?

    Это у вас отсутствие. Точнее каша вместо аргументов.

    Рыдаем. От непонимания довольно простых вещей.

    Еще раз повторяю. Ядро монолитное, структуры данных общие, графика в том числе. С позиции API графические функции тоже являются неотъемлемой частью. То, что какую-то DLL можно хакнуть или подменить, рояля не играет. Можно и в памяти структуру данных подпатчить во время исполнения - к архитектуре ОС это не относится.
     
  8. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    О! Классно, чт о тему раделили, а то я аж-но испугался, за количество оффтопа.
    Да-да, все именно так :). Это я завтыкал, думал, что в CreatePopupMenu хендл окна передается. А оно void. Признаю свои ошибки.

    Абсолютно правильно. Без, например, ShowWindow, ядро Винды будет ущербно и неработоспособно. Но вот саму реализацию этой функции (как и большинства другий GUIшных) чаще всего подменить не сложная задача. Для профессионала, конечно, а не для меня-двоечника. Фактически программист будет и дальше дергать ShowWindow не интересуясь где на формоче, скажем, тулбар, сверху или сбоку.
     
  9. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.057
    Абсолютно верно.

    Но это не имеет отношения к тому, что в винде графика таки в ядро встроена. :)
     
  10. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    Ну, я с этого и начал. Причем даже windows так называемый lite упомянул. Где ядро 98 или Me, а GUI из Win 95. И фичи от ядра на месте, и GUI не жрет ресурсы своей IE интегрированностью.
     
  11. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Alex Kagansky, Забавно. Вместо того что бы заглянуть в импорты того же win32k.sys вы мне тычете магическим "архитектура" и не признаёте, что изменение кода конкретной DLL не влечёт за собой изменения API... Гениальная точка зрения.

    Что же вы тогда скажете про ZX-Spectrum и TR-DOS ?
     
  12. Zelya

    Zelya

    Регистрация:
    20 апр 2007
    Сообщения:
    722
    Bato-San,
    Вы вольны изменить код конкретной dll, поменяв, скажем, сигнатуру API функции. Но в таком случае, боюсь, Вы получите полностью нерабочий продукт.
     
  13. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Лучше - в экспорты:
     
  14. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    Zelya, Тут народ путается, пытаясь доказать, что я не могу взять конкретный файл и выбросить его из системы, потому что "так типа не задумано разработчиками". При этом просто не понимают даже, как оно работает на самом деле. Или лукавят. Что маловероятно.
    Нет нужды менять сигнатуры API что бы заставить винду рисовать что то отличное от стандартных картинок. Достаточно просто изменить конкретную функцию рисования. Всё тот же реверсинг. Тут пытаются доказать дополнительно, что графическое ядро необходимо для функционирования системы и без него она загнётся в корчах. Это примерно тоже самое, что доказывать невозможность функционирования Windows без Internet Explorer.
    Нет и нужды трогать ядро видеосистемы. Хотя оно и оформлено как обычный драйвер.
    DDK тоже нет необходимости читать. Так ведь можно сделать кучу "нестандартных" функций и, ай-яй-яй ! - вмешаться в работу ядра.
    Я привёл RealPack9 как пример изменения интерфейса Win9x. Реально работающий. Можем ставить любые скины. Но, как видим - это не аргумент.

    Ведь главное тут не истина уже, а просто доказать, что неправ именно я. Ну, флаг в руки.

    gudleifr, экспорты - это то что предоставляет нам конкретный модуль. А импорты - это то что он берёт из ядра системы. И вот в импортах то нет ничего про рисование. Совсем. У нас есть отдельное ядро видеосистемы. Основное ядро от него не зависит. Вот о чём речь. Выбросим этот файл и упоминания о нём - система запустится и будет работать. Только видеовывода не будет. По большому счёту откажет только то что этим пользуется. Не файловая система. Ни менеджер памяти. Ни что то другое.
     
  15. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    У меня есть задачка попроще. Как используя wxAuiManager сделать pane активным не тыкая мышкой в заголовок, но программно?
    upd: Всё, не надо, нашёл. Продолжайте. =)
     
    Последнее редактирование: 24 дек 2012
  16. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.057
    Ээээ.... а что, влечет? :ninja:
    Забавно. :)

    А что с ними? Я не в курсе про эти системы вообще.
     
  17. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    А откуда там может быть про рисование, если это самый глубоко закопанный модуль GUI? На всех трех страницах нет ни одной строчки про что-то более "ядреное". На самом деле, мы можем выкинуть из Винды все, заявив, что "настоящее ядро" (т.е. BIOS) прекрасно работает и без нее. Только это будет ни фига не Виндовс.

    Если уж так упираться рогом, то что такое OC? Распределение ресурсов между пользователями-программами. Win-программы умеют работать без GUI? Нет. Значит, GUI является частью ОС.
     
    Последнее редактирование: 24 дек 2012
  18. Alex Kagansky

    Alex Kagansky

    Регистрация:
    17 дек 2007
    Сообщения:
    3.057
    Этого лично я не доказываю. :)

    Кстати, можно подпатчить винду таким образом, что из нее будет выброшено вообще все, не только графика. Останется один главный цикл обработки сообщений. Из этого, видимо, следует, что в ядре нет ничего вообще. :)
     
  19. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Bato-San нравится это.
  20. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    gudleifr, а я рогом не упираюсь. В отличии от некоторых.:yes:Факт доказан. На всю глубину. Но нас то интересовало в начале темы не полная замена видеоядра, а всего то изменение внешнего вида стандартных окошек и кнопочек. Вернёмся к этой теме. Ок ?

    Alex Kagansky, что следует для винды - я выше написал. Как использовать - думайте сами. Скажу, что программы работающие в таком режиме есть. Ну нафиг им человеческое вмешательство не нужно. Как и лишний расход времени и ресурсов.

    Про ZX-Spectrum...:blush: Тут такая штука с ним, что там как раз та ситуация, которую вы описывали. На экстремуме. Да ещё и в ПЗУ зашито. Казалось бы - как поменять то ? Но даже в этом случае всё делалось. Нужда заставит.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление