Как автоматически щелкнуть левой кнопкой мыши, правой кнопкой мыши и прокрутить с помощью С#

Как я могу автоматически щелкнуть левой кнопкой мыши, правой кнопкой мыши и прокрутить вверх или вниз на моем рабочем столе с помощью С#

Я хочу такой метод:

public void RightMouseClick(int x, int y) { }
public void LeftMouseClick(int x, int y) { }
public void Scroll(int x, int y, int amount) { }
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
87
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот ваш красиво написанный код

    [System.Runtime.InteropServices.DllImport("user32.dll")]
    static extern bool SetCursorPos(int x, int y);
    [System.Runtime.InteropServices.DllImport("user32.dll")]
    static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int 
    dwExtraInfo);

    private const int MOUSEEVENTF_LEFTDOWN = 0x02;
    private const int MOUSEEVENTF_LEFTUP = 0x04;

    private const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
    private const int MOUSEEVENTF_RIGHTUP = 0x0010;

    private const int MOUSEEVENTF_WHEEL = 0x0800;

    private static void Scroll(int Xposition, int Yposition, int amount)
    {
        SetCursorPos(Xposition, Yposition);
        mouse_event(MOUSEEVENTF_WHEEL, Xposition, Yposition, amount, 0);
    }

    private static void LeftMouseClick(int Xposition, int Yposition)
    {
        SetCursorPos(Xposition, Yposition);
        mouse_event(MOUSEEVENTF_LEFTDOWN, Xposition, Yposition, 0, 0);
        mouse_event(MOUSEEVENTF_LEFTUP, Xposition, Yposition, 0, 0);
    }

    private static void RightMouseClick(int Xposition, int Yposition)
    {
        SetCursorPos(Xposition, Yposition);
        mouse_event(MOUSEEVENTF_RIGHTDOWN, Xposition, Yposition, 0, 0);
        mouse_event(MOUSEEVENTF_RIGHTUP, Xposition, Yposition, 0, 0);
    }

приятного аппетита

Хорошо, именно то, что я хотел, но у меня есть вопрос, какие именно значения присваиваются вашим константам, например «0x02 и 0x0008 и т. д.». ?

Sadra M. 15.12.2020 11:38

@CedrocMoore это значения для разных доступных флагов. Смотрите здесь: learn.microsoft.com/en-us/windows/win32/api/winuser/… (обратите внимание, что эта функция написана на C или C++ в dll)

Chrᴉz remembers Monica 15.12.2020 12:11

Другие вопросы по теме