Позиция окна при запуске клиента?

Neo`

Последний из атеистов
Участник
Сообщения
41
Розыгрыши
0
Репутация
0
Реакции
23
Баллы
845
Добрый день! Прошу вашей помощи, излазил все *.ini и так и не смог найти и понять можно ли как-то настроить координаты для того, чтобы клиент запускался всегда в одной позиции окна (находил параметр WindowPosition в l2.ini, но он не работает, окно все равно каждый раз запускается рандомно). При этом если запускать клиент сторонним лаунчером (например l2alone), то этот лаунтчер имеет такую фичу - запускать клиент с определенной позицией (вероятно лаунчер передает какие-то флаги клиенту при запуске). Помогите пожалуйста найти ответ на этот вопрос.
Заранее огромное вам спасибо!
 
option.ini если не ошибаюсь.
 
нет в option.ini таких опций
 
нет в option.ini таких опций
Попробуйте удалить этот фаил, зайти в игру, выставить все нужные настройки, перетянуть окно игры в нужное место и выйти. Затем опять зайти проверить.
 
поробовал - не помогло
 
Если вы имеете в виду позиции окон в нутри ингры, тоесть статусбар, таргет статусвинд и тд и тп, то как минимум в хф за это отвечает файл "WindowsInfo.ini" Зайдите в игру, выставле все окна как вам удобно, после выйдите с игры нормальным способом и в своиствах этого файла поставте галочку на "Только чтение"
Если же после того как вы выставили окна как вам надо и после перезапуска они снова сбились, тогда перед тем как их выставлять убедитесь что это галочка не стоит.
 
интересует не расположение окон внутри игры, а расположение окна самой игры после запуска
 
Возможно в апдейтере вызов самого l2.exe идет через WinAPI функцию CreateProcess или подобное, а там насколько помню в параметрах можно передать структуру с свойствами запуска, в которые входит и позиция окна создаваемого процесса.
 

За ради интереса, проверил, перемещает окно л2 в указанное место, далее уже можно извращаться как угодно.
 
Прошу простить меня, но не совсем понял к чему это. Писать отдельную утилю для перемещения окна л2? это не совсем то, чем хотелось бы заниматься, интересует именно расположение где хранится по-молчанию позиция окна l2 при запуске (ведь наверняка он берет её из ini).
 
В L2 всё приходится делать так как не хотелось.
У меня есть стойкое ощущение, что тебе придется прислушаться к тому что тебе говорят.

ведь наверняка он берет её из ini
Найди. Я не искал.
Однако предполагаю что L2 не сохраняет координаты XY окна на твоем экране и всегда открывает L2 не в той позиции в которой была закрыта игра.

Я могу ошибаться, тут много гуру клиента, которые расщепили л2 на атомы, они поправят.
 
Ну ты ж привел примером запуска в нужной позиции запуск через лаунчер. Как я выше и говорил - скорее всего клиент там запускается через CreateProcess, с задаванием именно в нем позиции окна клиента.
 
Если не ошибаюсь, там процесс запускается с помощью ShellExecuteW, попробую порыть в эту сторону.

Смущает один факт. Есть две сборки клиента Interlude, они открывают окна в разных местах (вы наверняка скажете, что l2.exe или l2.bin редактирован, но нет), если взять все *.ini пачкой и скопировать в другой клиент - они будут открывать окна в одинаковых местах. Соот-но в ini где-то хранится инфа о координатах позиции окна, но где - вопрос.
 
Кстати глянул - в новых клиентах позиция сохраняется.
За это отвечают значения параметров GamePlayViewportStartX и GamePlayViewportStartY из секции [Video] в option.ini
 
Это размер окна, а не позиция.
 
Как ниже ответили, логично что лаунчер выполняет функцию запуска окна клиента игры, соответственно он и может указать позицию создавшегося окна клиента игры, вам лишь требуется повторить функционал этого лаунчера , вот и все .
1.запуск
2.установка позиции

=)
Как то так.
 
Напиши сам или закажи кому то прожку для таких нужд

Также тебе поможет DxWnd
 
Больше интересно для чего это нужно) будто религия не позволяет самому перетащить окно))))