C# Щелкните и перетащите или Колесо мыши с PostMessage / SendMessage - PullRequest
0 голосов
/ 20 июня 2020

Я создаю приложение КОНСОЛЬ , мне нужно прокрутить определенную часть окна с позиций (x = 350, y = 240) до (x = 350, y = 120) (вертикальная прокрутка ), Пробовал разные способы, но не смог. Мне также не удалось использовать параметр WM_MOUSEWHEEL. Следуйте коду, который я использую для щелчков, которые работают идеально, мне просто нужно адаптировать его, чтобы щелкнуть и перетащить или определить точку Y в окне и использовать прокрутку мыши. Не могли бы вы мне помочь? Извините за плохой англи sh, я использовал переводчик

public class Win32
{
    public const int WM_KEYDOWN = 0x100;
    public const int WM_KEYUP = 0x101;
    public const int WM_COMMAND = 0x111;
    public const int WM_LBUTTONDOWN = 0x201;
    public const int WM_LBUTTONUP = 0x202;
    public const int WM_LBUTTONDBLCLK = 0x203;
    public const int WM_RBUTTONDOWN = 0x204;
    public const int WM_RBUTTONUP = 0x205;
    public const int WM_RBUTTONDBLCLK = 0x206;

    [DllImport("User32.dll")]
    public static extern Int32 PostMessage(int hWnd, int Msg, int wParam, IntPtr lParam);

}

static void Main(string[] args)
{
    IntPtr WinHandle = User32.FindWindow(null, "My Window");

    Win32.PostMessage((int)WinHandle, Win32.WM_LBUTTONDOWN, 0x00000001, CreateLParam(350, 240));
    Thread.Sleep(100);
    Win32.PostMessage((int)WinHandle, Win32.WM_LBUTTONUP, 0x00000000, CreateLParam(350, 120));
    Console.Write("Done");
    Console.ReadKey();
}
...