Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 28.05.2019, 10:09   #1
amd11
Новичок
Джуниор
 
Регистрация: 28.05.2019
Сообщений: 1
По умолчанию Изменить размер запускаемых окон игр

Уважаемые программисты вообщем у меня лопаются мозги. Есть очень милые игры для детей по изучению компьютерной мыши. Но в этих игрульках есть одна пренеприятнейшая особенность. запускаются они в разрешении 800 на 600 в квадратике без возможности провести хоть какую нибудь манипуляцию с размером окна. даже свернуть нормально их нельзя, изменить размер окна. Ничего нельзя, только нажать клавишу выход. Пробовала все, что только нашла в интернете: программы по прописываю размеров для игр, пыталась делать два рабочих стола. Думала через эмулятор запустить - нифига. Никаких файлов config, dll, ini к ним не идет. Есть небольшое предположение, что это закомпилированные swf ролики
Потом руки дошли до декомпиляторов и дисассемблеров. в этом я профан. Ума хватило только на то, что бы найди функцию по созданию окна с таким вредным параметром, но что делать дальше я не знаю. и на какие параметры менять тоже.
Код:
int __usercall sub_42BFB4@<eax>(HMENU a2@<ecx>, int *a1@<edx>, int ebp0@<ebp>, char a3, LPCWSTR lpWindowName, int a5, int a6, int a7, int a8, int a9, int a10, HINSTANCE hInstance)
{
  _WIN32_FIND_DATAW *v12; // eax
  int *v13; // esi
  int v14; // eax
  bool v15; // zf
  const WCHAR *v16; // eax
  void *v17; // eax
  int v18; // eax
  int v19; // esi
 
  v12 = *(ebp0 + 40);
  v13 = a1;
  *(ebp0 - 20) = v12;
  *(ebp0 - 16) = a2;
  *(ebp0 - 4) = 0;
  if ( !v12 )
  {
    v12 = GetModuleHandleW(0);
    *(ebp0 - 20) = v12;
  }
  *(ebp0 - 80) = 8;
  *(ebp0 - 76) = sub_42C13D;
  *(ebp0 - 72) = 0;
  *(ebp0 - 68) = 0;
  *(ebp0 - 64) = v12;
  *(ebp0 - 60) = LoadIconW(v12, 0x1F4);
  *(ebp0 - 56) = LoadCursorW(0, 0x7F00);
  *(ebp0 - 52) = GetStockObject(4);
  *(ebp0 - 48) = 0;
  *(ebp0 - 44) = &ClassName;
  if ( !RegisterClassW((ebp0 - 80)) )
    goto LABEL_18;
  *(ebp0 - 40) = 0;
  *(ebp0 - 36) = 0;
  *(ebp0 - 32) = 800;
  *(ebp0 - 28) = 600;
  if ( v13 )
    SetRect((ebp0 - 40), 0, 0, v13[2] - *v13, v13[3] - v13[1]);
  v15 = *(ebp0 + 36) == 0;
  *(ebp0 - 24) = 2147483648;
  if ( !v15 )
    *(ebp0 - 24) = 13238272;
  AdjustWindowRect((ebp0 - 40), *(ebp0 - 24), *(ebp0 - 16) != 0);
  v16 = *(ebp0 + 12);
  if ( *(ebp0 + 32) < 8u )
    v16 = (ebp0 + 12);
  hWnd = CreateWindowExW(
           0,
           &ClassName,
           v16,
           *(ebp0 - 24),
           *v13,
           v13[1],
           *(ebp0 - 32) - *(ebp0 - 40),
           *(ebp0 - 28) - *(ebp0 - 36),
           0,
           *(ebp0 - 16),
           *(ebp0 - 20),
           0);
  if ( !hWnd )
  {
LABEL_18:
    v14 = GetLastError();
    exit_1(v14);
  }
  sub_435614(*(ebp0 + 36));
  v17 = operator new(0x264u);
  *(ebp0 - 16) = v17;
  *(ebp0 - 4) = 1;
  if ( v17 )
    v18 = sub_42B2C7(v17);
  else
    v18 = 0;
  dword_832A70 = v18;
  ShowWindow(hWnd, 10);
  UpdateWindow(hWnd);
  v19 = dword_832A70;
  sub_407450(ebp0 + 8);
  return v19;
}
Я подозреваю, что изначально программки были написаны на С++. Пожалуйста помогите мне. у меня 12 маленьких программок в которых меня бесят эти настройки. Я всего лишь хочу что бы они открывались в небольшом окне которое можно будет хотя бы свернуть или сделать на пол экрана.
Как это сделать? пару игр прикрепляю к этому письму, что бы вы понимали о чем я говорю. покажите хотя бы как сделать это на одной игре. ссылка на все игрушки
остальные я сама уже переделаю.
amd11 вне форума Ответить с цитированием
Старый 30.05.2019, 22:34   #2
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,284
По умолчанию

Это не исправить. Игры запускаются в графическом полноэкранном режиме, и если не предусмотрен их оконный запуск, то переделать не выйдет.
Обратитесь к автору, только он может помочь. Декомпилировать и ломать чужие программы как минимум неэтично, а как максимум наказуемо.
kvitaliy вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить размер графика gluk_fm Microsoft Office Excel 2 20.10.2011 09:45
Изменить размер иконки KoBRaAndrey Общие вопросы Delphi 1 03.07.2010 15:03
Контроль запускаемых окон(Hook) Alter Win Api 17 24.02.2009 19:59
изменить размер кнопки badfilin JavaScript, Ajax 2 12.04.2008 16:04
Как изменить размер поля БД Алёна БД в Delphi 5 07.05.2007 09:06


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840