Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2015, 16:27   #1
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию Получение hWnd скрытого окна

Здравствуйте!

Ситуация такая - есть игра(lineage2) у которой я хочу убрать рамки в оконном режиме, несмотря на то что игре уже очень много лет и она постоянно обновляется разработчики до сих пор данной функцией в настройках не озаботились и это весьма неудобно. Данная задача в обычной ситуации решается очень просто, но тут в целях защиты от читерства(полагаю) окно игры в диспетчере не показывается и поиск окна по заголовку не работает, более того если поставить например на таймер GetActiveWindow и сделать активным окно игры выдается 0, хотя с другими окнами работает нормально.
Подскажите пожалуйста знатоки в какую сторону копать хотя бы, весь инет перерыл ниче не нашел, хотя не исключено что просто не знаю что именно нужно спрашивать у поисковика.

Заранее спасибо!
Crystallon вне форума Ответить с цитированием
Старый 21.09.2015, 16:34   #2
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

GetForegroundWindow пробуй, а getactivewindow возвращает только "свои" окна
GreenWizard вне форума Ответить с цитированием
Старый 21.09.2015, 16:39   #3
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

Цитата:
Сообщение от GreenWizard Посмотреть сообщение
GetForegroundWindow пробуй, а getactivewindow возвращает только "свои" окна
С ним аналогично, уже пробовал =( ноль выдает и все на этом...

Может можно какой-то вызов перехватить во время запуска игры или еще как-то? Должен же быть способ, окно же существует =\

Последний раз редактировалось Stilet; 21.09.2015 в 19:04.
Crystallon вне форума Ответить с цитированием
Старый 21.09.2015, 18:16   #4
DIONISKA
Форумчанин
 
Регистрация: 07.11.2011
Сообщений: 161
По умолчанию

Искать хэндлы можно по-разному. Можешь так:
- перечисляешь хэндлы всех окон используя GetWindow() из winapi;
- с помощью GetWindowText() получаем строки заголовов окон;
- находишь окно с нужным заголовком, его хэндл и есть нужный.
- ...
- profit!

если сравнивать по заголовку не получится, то можно сравнивать с названием класса (GetClassName)

Последний раз редактировалось DIONISKA; 21.09.2015 в 18:22. Причина: upd
DIONISKA вне форума Ответить с цитированием
Старый 21.09.2015, 18:35   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

EnumWindows тоже не видит окно?
FaTaL вне форума Ответить с цитированием
Старый 22.09.2015, 10:58   #6
Crystallon
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 273
По умолчанию

DIONISKA
Попробую, спасибо.
FaTaL
С помощью EnumWindows получилось выяснить id окна, но только второго по счету запущенного и если они оба свернуты... корейцы там чем-то явно упарываются когда делают свою защиту античитерскую... Но по крайней мере это какой никакой а прогресс.

DIONISKA
Спасибо огромное! Работает)
Но появилась еще одна проблема, убираю рамки таким образом:
Код:
      SendMessage(id,WM_SETREDRAW,0,0);
      SetWindowLong(id, GWL_STYLE, GetWindowLong(id, GWL_STYLE) And $800000);
      SendMessage(id,WM_SETREDRAW,1,0);
Это работает на более старой версии клиента игры а на актуальной приводит к повисанию окна и спасает только переход в полноэкранный режим сочитанием горячих клавиш, а дальше уже можно переходить обратно в оконный и все снова нормально, но с рамками, полагаю происходит сброс стилей.

Последний раз редактировалось Stilet; 22.09.2015 в 19:02.
Crystallon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить *.EXE (имя файла) зная HWND окна bakanaev Общие вопросы Delphi 4 04.06.2013 18:38
получить HWND wpf окна D][mon WPF, UWP, WinRT, XAML 2 19.04.2012 16:33
Найти Handle главного Thread программы по HWND\PID окна ZaRDaK Win Api 3 20.12.2009 19:10
Узнать HWND окна Ilshat89 Общие вопросы C/C++ 3 01.09.2009 22:30
Создание кнопки зная HWND окна(рабочий стол) WOLFak Компоненты Delphi 1 07.04.2008 07:45