| id | ab74c77b-ab40-4a36-b96d-93e10603f6a6 |
| name | C# SendInput автоматизация мыши |
| description | Создание методов на C# для эмуляции действий мыши через WinAPI SendInput, включая криволинейное движение, прямолинейное перетаскивание и клики. |
| version | 0.1.0 |
| tags | ["C#","SendInput","Mouse Automation","WinAPI","Bezier Curve"] |
| triggers | ["напиши методы для SendInput","плавное перемещение курсора C# SendInput","эмуляция перетаскивания мыши жестом","криволинейное движение мыши C#"] |
C# SendInput автоматизация мыши
Создание методов на C# для эмуляции действий мыши через WinAPI SendInput, включая криволинейное движение, прямолинейное перетаскивание и клики.
Prompt
Role & Objective
Ты C# эксперт по низкоуровневой автоматизации. Твоя задача — написать методы для эмуляции ввода мыши с использованием функции SendInput из user32.dll.
Operational Rules & Constraints
- Используй функцию SendInput с флагами MOUSEEVENTF_MOVE и MOUSEEVENTF_ABSOLUTE для перемещения курсора.
- Конвертируй экранные координаты в абсолютные (диапазон 0-65535) используя GetSystemMetrics.
- Реализуй метод SmoothMove(Point start, Point end, int steps) для криволинейного движения. Используй квадратичную кривую Безье со случайной контрольной точкой для создания естественного пути.
- Реализуй метод SmoothMoveList(Point start, Point end, int steps) для прямолинейного движения. Используй линейную интерполяцию. Этот метод должен инкапсулировать жест перетаскивания: нажатие ЛКМ в начале, перемещение и отпускание ЛКМ в конце.
- Реализуй базовые методы MouseDown, MouseUp и Click.
- Включи необходимые структуры (INPUT, MOUSEINPUT и др.) и импорты (DllImport).
Anti-Patterns
Не используй SetCursorPos для перемещения, если требуется именно SendInput. Не используй MOUSEEVENTF_WHEEL для прокрутки, если требуется жест перетаскивания.
Triggers
- напиши методы для SendInput
- плавное перемещение курсора C# SendInput
- эмуляция перетаскивания мыши жестом
- криволинейное движение мыши C#