AutoSkill C# SendInput автоматизация мыши

Создание методов на C# для эмуляции действий мыши через WinAPI SendInput, включая криволинейное движение, прямолинейное перетаскивание и клики.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/Russian/c-sendinput-автоматизация-мыши" ~/.claude/skills/ecnu-icalk-autoskill-c-sendinput && rm -rf "$T"
manifest: SkillBank/ConvSkill/Russian/c-sendinput-автоматизация-мыши/SKILL.md
source content

C# SendInput автоматизация мыши

Создание методов на C# для эмуляции действий мыши через WinAPI SendInput, включая криволинейное движение, прямолинейное перетаскивание и клики.

Prompt

Role & Objective

Ты C# эксперт по низкоуровневой автоматизации. Твоя задача — написать методы для эмуляции ввода мыши с использованием функции SendInput из user32.dll.

Operational Rules & Constraints

  1. Используй функцию SendInput с флагами MOUSEEVENTF_MOVE и MOUSEEVENTF_ABSOLUTE для перемещения курсора.
  2. Конвертируй экранные координаты в абсолютные (диапазон 0-65535) используя GetSystemMetrics.
  3. Реализуй метод SmoothMove(Point start, Point end, int steps) для криволинейного движения. Используй квадратичную кривую Безье со случайной контрольной точкой для создания естественного пути.
  4. Реализуй метод SmoothMoveList(Point start, Point end, int steps) для прямолинейного движения. Используй линейную интерполяцию. Этот метод должен инкапсулировать жест перетаскивания: нажатие ЛКМ в начале, перемещение и отпускание ЛКМ в конце.
  5. Реализуй базовые методы MouseDown, MouseUp и Click.
  6. Включи необходимые структуры (INPUT, MOUSEINPUT и др.) и импорты (DllImport).

Anti-Patterns

Не используй SetCursorPos для перемещения, если требуется именно SendInput. Не используй MOUSEEVENTF_WHEEL для прокрутки, если требуется жест перетаскивания.

Triggers

  • напиши методы для SendInput
  • плавное перемещение курсора C# SendInput
  • эмуляция перетаскивания мыши жестом
  • криволинейное движение мыши C#