RSBot icon indicating copy to clipboard operation
RSBot copied to clipboard

[minimized/maximized button] Client Penceresinde simge durumuna küçültme butonu aktif edilebilir mi

Open EvilNiqht opened this issue 1 year ago • 5 comments

Client Penceresinde simge durumuna küçültme butonu aktif edilebilir mi? RSBot ile silkroad açıldığında simge durumuna küçültme butonu çıkmıyor.

Minimized

EvilNiqht avatar Jun 04 '23 15:06 EvilNiqht

Aslında bu client derlenmeden önce kaynak kodlarında ayarlanan bir durumdur. Fikir güzel işe yarayabilir. Bunun üzerinde çalışacağım.

SDClowen avatar Jun 04 '23 15:06 SDClowen

çok teşekkürler, kaynak kodlara baktım da beni aşan bir durum nereden yapabileceğimi çözemedim

EvilNiqht avatar Jun 04 '23 15:06 EvilNiqht

Library/RSBot.Core/Components/ClientManager.cs dosyasına bakmanızı öneririm. Process Memory hook ile yapılabilir.

Library/RSBot.Core/Extensions/NativeExtensions.cs Bu dosyayada bakmanızı öneririm. PINVOKE ile ilgili yardımcı fonksiyonlar burada yer almaktadır.

Burada sizin için mükemmel bir makale var. Okumanızı tavsiye ederim.

SDClowen avatar Jun 04 '23 15:06 SDClowen

aşağıdaki şekilde yapınca oldu yalnız clientmanager.cs 'de SetTitle prosedürüne ekledim karakter login olduktan sonra simge durumuna küçült aktif oluyor. bu class içinde daha uygun biyer bulamadım;

//NativeExtensions.cs

        public const uint WS_SYSMENU = 0x00080000;
        public const uint WS_MINIMIZEBOX = 0x00020000;
        
        [DllImport("user32.dll")]
        public static extern int SetWindowText(IntPtr hWnd, string text);
        
        [DllImport("user32.dll", EntryPoint = "GetWindowLong")]
        public static extern uint GetWindowLongPtr(IntPtr hWnd, int nIndex);

//ClientlessManager.cs public static void SetTitle(string title) { if (_process == null) return;

 SetWindowLong(_process.MainWindowHandle, -16, GetWindowLongPtr(_process.MainWindowHandle, -16) | WS_SYSMENU | WS_MINIMIZEBOX);

SetWindowText(_process.MainWindowHandle, title); }

EvilNiqht avatar Jun 04 '23 19:06 EvilNiqht

Makaledeki fonksiyonları ClientManager içine ekleyin ve clientmanager içindeki start fonksiyonunun altında mainwindowhandle'nin değeri 0'dan çıkar çıkmaz window hide ve maximize buttonlarını makaledeki fonksiyonları kullanarak uygulayın.

SDClowen avatar Jun 05 '23 06:06 SDClowen