RSBot
RSBot copied to clipboard
[minimized/maximized button] Client Penceresinde simge durumuna küçültme butonu aktif edilebilir mi
Client Penceresinde simge durumuna küçültme butonu aktif edilebilir mi? RSBot ile silkroad açıldığında simge durumuna küçültme butonu çıkmıyor.
Aslında bu client derlenmeden önce kaynak kodlarında ayarlanan bir durumdur. Fikir güzel işe yarayabilir. Bunun üzerinde çalışacağım.
çok teşekkürler, kaynak kodlara baktım da beni aşan bir durum nereden yapabileceğimi çözemedim
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.
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); }
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.