Thorvardr Posted September 16, 2014 Share Posted September 16, 2014 Хотел тему создать в разделе "Предложения", а оказалось, что надо быть писателем со стажем. Ну да ладно, создам тут, надеюсь, модератор поймет и переместит туда. В настоящий момент имеется способ лишить окно клиента рамки (ключ UseWindowFrame в asterios.ini). Если это возможно, давайте еще в этом направлении поработаем. Пусть рамка будет! Но окно пусть будет неизменяемого размера. Суть в том, что рамка позволяет удобно перемещать окно, сворачивать его, разворачивать при использовании всего лишь мыши. Но иногда бывает так, что случайно "хватаешь" мышкой за кромку окна и любое шевеление в сторону меняет его размер, происходит перерисовка с двухсекундной паузой и отображением черного окна. Пусть это будет тоже настраиваемо, т.к. не исключаю, что есть люди, играющие на нестандартных размерах клиента. В .Net решение достигается изменением свойства окна FormBorderStyle, где допустимые значения такие: None - это как раз тот вариант, который реализован как UseWindowFrame=False, то есть окно без рамки FixedSingle или FixedSingle3D - это то что я прошу, у окна имеется рамка, оно может быть перемещено по экрану, свернуто, развернуто, закрыто, но опция изменения его размера путем захватывания за край рамки недоступна Sizable - это то, как выглядит окно клиента обычно Link to comment Share on other sites More sharing options...
Extortioner Posted September 16, 2014 Share Posted September 16, 2014 не думаю, что это целесообразно, т.к. приедтся перехватывать кучу сообщений винды, плюс править ехе-файл и делать иньекции дополнительных функций Link to comment Share on other sites More sharing options...
en0tpwnz Posted September 16, 2014 Share Posted September 16, 2014 играйте в фулскрине, господа Link to comment Share on other sites More sharing options...
Thorvardr Posted September 16, 2014 Author Share Posted September 16, 2014 не думаю, что это целесообразно, т.к. приедтся перехватывать кучу сообщений винды, плюс править ехе-файл и делать иньекции дополнительных функций Нет, нет. Все уже придумано до нас. Сама по себе опция, которая либо убирает рамку у окна, либо ее не убирает, - это уже фундамент, которым просто надо воспользоваться. По сути это все тоже самое, решение осуществлено именно путем смены типа Border-а. Надо лишь вместо двух возможных вариантов выбора дать еще один. По идее, это можно сделать прямо на лету с помощью какой нибудь примочки типа Winspector, но тут так трепетно относятся к целостности клиентской части, что за безобидный эксперимент можно словить бан, так что я лучше предложение напишу, а разработчик пусть хотя бы прочтет. Link to comment Share on other sites More sharing options...
Extortioner Posted September 16, 2014 Share Posted September 16, 2014 (edited) Нет, нет. Все уже придумано до нас. Сама по себе опция, которая либо убирает рамку у окна, либо ее не убирает, - это уже фундамент, которым просто надо воспользоваться. По сути это все тоже самое, решение осуществлено именно путем смены типа Border-а. Надо лишь вместо двух возможных вариантов выбора дать еще один. По идее, это можно сделать прямо на лету с помощью какой нибудь примочки типа Winspector, но тут так трепетно относятся к целостности клиентской части, что за безобидный эксперимент можно словить бан, так что я лучше предложение напишу, а разработчик пусть хотя бы прочтет. не все так просто. тип границы окна задается при создании этого окна. HWND WINAPI CreateWindow( _In_opt_ LPCTSTR lpClassName, _In_opt_ LPCTSTR lpWindowName, _In_ DWORD dwStyle, _In_ int x, _In_ int y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam ); где dwStyle задается комбинацией из http://msdn.microsoft.com/en-us/library/windows/desktop/ms632600(v=vs.85).aspx эту функцию надо перехватывать путем иньекции в процесс линейки дллки с написанной своей функцией с возможностью выбора параметра рамки окна Edited September 16, 2014 by MiseryMachine Link to comment Share on other sites More sharing options...
Thorvardr Posted September 16, 2014 Author Share Posted September 16, 2014 (edited) эту функцию надо перехватывать путем иньекции в процесс линейки дллки с написанной своей функцией с возможностью выбора параметра рамки окна Edited September 16, 2014 by Thorvardr Link to comment Share on other sites More sharing options...
Admin Posted September 16, 2014 Share Posted September 16, 2014 Да, но оно уже реализовано. Ведь Антон написал (или это стандартный функционал?) перехват для удаления стиля WS_BORDER, тут все тоже самое, только надо WS_THICKFRAME так же убирать. Отправлю flash-ролик личным сообщением. Не для общего обзора оно, а то полезет народ куда не надо.Не совсем так, эта опция уже была в клиенте, на сколько я помню (в L2.ini) и он просто перенес ее в Asterios.ini для удобства.Но сделать наверное может, если захочет Link to comment Share on other sites More sharing options...
iKpy Posted September 16, 2014 Share Posted September 16, 2014 Ах как было бы замечательно если бы ещё можно было изменять параметры системного чата. А то это могут делать лишь единицы и делиться познаниями обхода защиты не торопятся. Link to comment Share on other sites More sharing options...
Drin Posted September 16, 2014 Share Posted September 16, 2014 не думаю, что это целесообразно, т.к. приедтся перехватывать кучу сообщений винды, плюс править ехе-файл и делать иньекции дополнительных функций у нас и так клиент весть патченый перепатченый, на данный момент уже более сотни патчей, так что одним больше одним меньше... Но сделать наверное может, если захочет это не сложно, так что я если не забуду сделаю эту опцию WindowFixedSize в новом клиенте Link to comment Share on other sites More sharing options...
Extortioner Posted September 16, 2014 Share Posted September 16, 2014 Не совсем так, эта опция уже была в клиенте, на сколько я помню (в L2.ini) и он просто перенес ее в Asterios.ini для удобства. Но сделать наверное может, если захочет было бы неплохо еще вынести в Asterios.ini часть настроек, ответственных за более глубокое ковыряние в графике и некоторых параметрах сети (объем буферов всяких и подобное) Link to comment Share on other sites More sharing options...
Recommended Posts