![]() |
Ответ: Чёрное окошко перед запуском проги на B3D
нда понял как работает - кидаем exe или runtime.dll на окошко, и оно патчицо, но окошко пропадает совсем.
сначала кинул exe, окошко пропало но прога работала (проверил movemouse'ом), кинул dll и всё - ниодна прога ни в одном режиме не компилится (тоест компилится но окна проги невидно)... так что видно для старых версий... а я се блиц запакал :-D |
Ответ: Чёрное окошко перед запуском проги на B3D
Просто после этого нужно ещё и показать окно, после того, как оно было скрыто. Пока вы разбирались с этой прогой, я сделал аналог. Эффект тот же - окошка нет и не появляется. Нужно просто писать ShowWindow в начале. Хотя есть у меня одна идейка...
|
Ответ: Чёрное окошко перед запуском проги на B3D
Народ!
Вы не по тому пути пошли. Прошу ознакомится. Decls : PHP код:
PHP код:
Окно появляется(мы успеваем его заметить), пропадает, ждём 3000 мс и оно появляется. Отсюда видно что в B3D управление коду программиста передаётся не сразу. Такчто варианта кроме лаунчера не вижу. Но растраиватся не стоит. Буду капать дальше и глубже. |
Ответ: Чёрное окошко перед запуском проги на B3D
>Окно появляется(мы успеваем его заметить)
А для того, чтоб не успавали и есть та прога ;) |
Ответ: Чёрное окошко перед запуском проги на B3D
Вложений: 1
Почти доделал!
Оказалось что создатели блица сделали своему окну отдельный тип Blitz Runtime Class По нему можно выцепить любое Blitz3D окно и захайдить его. Немного подождать и показать! :wallbash: Чёрт! никак не послать SendMessage блицом Чёрт! Чёто не пойму как сообщить лаунчеру что инициализация состоялась. И ещё одна проблема... Не поспевю схайдить... :((( При создании блиц окна оно имеет странный класс походу Выкладываю пока что есть. Может кто поможет. Программа Project2.exe запускает Game.exe потом ищет окно по классу(с любым текстом) и прячет его на две секунды. |
Ответ: Чёрное окошко перед запуском проги на B3D
Ну, по-моему, написать программу-загрузчик куда проще, чем ковырять компилятор...
|
Ответ: Чёрное окошко перед запуском проги на B3D
Ну да...
Но чёт я запарился. Создатели блица отожгли. Мне надо быть реактивным чтоб понять. Класс Blitz Runtime Window получает окно только когда оно на стадии Runtime. Когда передалось управление коду. Но до этого какаой оно имеет класс остаётся загадкой. Выход один: Запуск приложения под калпаком и полный анализ. Займусь. |
Ответ: Чёрное окошко перед запуском проги на B3D
Можно WinSight'ом поковырять, или попробовать поймать окно функцией GetForegroundWindow.
|
Ответ: Чёрное окошко перед запуском проги на B3D
Ксо!
Blitz3D`шное окно не принимает никаких сообщений во время инициализации! Оно игнорит любые обращения. Единственное что с ним можно сделать это прикрыть грудью(SplashScreen) или сесть за дизассемблер и крафтить патч. * Бугога бугога я сажусь за IDA Мда... Не силён я в крякинге ЧЁРТ! Я в экзешнике вот что нашол: PHP код:
PHP код:
Ладно буду дальше ковырять :moil: |
Ответ: Чёрное окошко перед запуском проги на B3D
далось вам это окошко...
|
Ответ: Чёрное окошко перед запуском проги на B3D
Цитата:
|
Ответ: Чёрное окошко перед запуском проги на B3D
Randomize
программы на blitz3d в некоторой степени можно декомпилировать обратно в код b3d |
Ответ: Чёрное окошко перед запуском проги на B3D
так эт самое - когда прогу запускаешь она создает окошко и потом применяет твой настройки графики или оно удаляется и появляется другое ?
|
Ответ: Чёрное окошко перед запуском проги на B3D
>так эт самое - когда прогу запускаешь она создает окошко и потом применяет твой настройки графики или оно удаляется и появляется другое ?
Нет. То же самое, только меняется размер. Randomize, да всё ж ясно. Я сам за идой вчера посидел, нашел создание окна, изменил ему стиль(убрал WS_VISIBLE). Как я понимаю, та прога делает то же самое. Теперь это окно - невидимое. Но прикол в том, что и после начала выполнения кода блица оно не появляется. Вот тут то и нужно использовать ShowWindow (или посылку WM_SHOW) для окна. И не нужно смотреть его класс. Для определения окна есть функция SystemProperty("AppHWND"). |
Ответ: Чёрное окошко перед запуском проги на B3D
Вложений: 2
У меня по ходу получилось :) Всё намного проще
Сначала в коде программы показываем наше окошко при помощи WinAPI. Это можно сделать как писалось выше (прописать в свой decls), но у меня тут уже готовый есть (см. аттач). 0. decls из аттача ставим на Блиц 1. Итак, после объявления граф. режима прописываем показывание окошка юзеру: Цитата:
3. Запускаем прогу с немецкого форум (в аттаче поклал тож) 4. На неё перетаскиваем ехешник, она патчит Пока ещё не всё проверил, но похоже патченный ехешник работает норм. :super: У меня версия блица 1.98. УПД: Перепроверил на рпгшке, всё работает как следует! Кстати, если используется полноэкранный режим, то юзать api_ShowWindow необязательно: окна-то нет ;) Спасибо гансам за убитое окошко. ;) З.Ы. Вроде можно так же пропатчить runtime.dll и тогда все ехешники будут так компилиться. Только чё-то лениво мне везде прописывать показ окна... Но для конечной версии проги подходит отлично! З.З.Ы. Для Ксорса же вообще идеально - ничего не надо прописывать для показа окна... Объясняется просто: Ксорс создаёт собственное окно, и данный фикс на него не воздействует ;) |
Часовой пояс GMT +4, время: 15:17. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot