Skip to content
/ Input Public

Multiplatform keyboard/mouse hooking and simulation library 멀티플랫폼 키보드/마우스 후킹 및 시뮬레이션 라이브러리

License

Notifications You must be signed in to change notification settings

Soju06/Input

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Input

멀티 플랫폼 키보드 및 마우스 후킹, 입력

Input 위키

input.test

API 사용 테스트 도구입니다.

📦 Install

패키지 설치 방법

  • Package Manager

    Install-Package Input
  • .NET CLI

    dotnet add package Input

📚 Samples

더 많은 샘플은 Example에서 확인할 수 있습니다.

Hook

키보드 및 마우스 후킹 예제입니다.

  • ⌨️ Keyboard Hook

    using Input;
    using System.Diagnostics;
    using Input.Platforms.Windows;
    
    var hook = Inputs.Use<IKeyboardHook>();
    var model = hook.KeyboardModel;
    
    model.KeyDown += (sender, key, state) => {
      Debug.WriteLine($"KeyDown: {key} {state}");
      return true;
    };
    
    model.KeyUp += (sender, key, state) => {
      Debug.WriteLine($"KeyDown: {key} {state}");
      return true;
    };
    
    hook.HookStart();
    
    if (Platform.IsWindows)
      while (WindowsMessagePump.Pumping()) { }
      
    Console.ReadLine();

    자세한 예제는 여기에서 확인할 수 있습니다.

  • 🖱️ Mouse Hook

    using Input;
    using Input.Platforms.Windows;
    using System.Diagnostics;
    
    var hook = Inputs.Use<IKeyboardHook>();
    var model = hook.KeyboardModel;
    
    model.KeyDown += (sender, key, state) => {
        Debug.WriteLine($"KeyDown: {key} {state}");
        return true;
    };
    
    model.KeyUp += (sender, key, state) => {
        Debug.WriteLine($"KeyDown: {key} {state}");
        return true;
    };
    
    hook.HookStart();
    
    if (Platform.IsWindows)
      while (WindowsMessagePump.Pumping()) { }
    
    Console.ReadLine();

    자세한 예제는 여기에서 확인할 수 있습니다.

Simulation

키보드 및 마우스 시뮬레이션 예제입니다.

  • ⌨️ Keyboard Simulation

    using Input;
    using System.Diagnostics;
    
    var simulation = Inputs.Use<IKeyboardSimulation>();
    
    // 1.1 KeyClick
    
    simulation.KeyClick(InputKeys.A);
    
    simulation.KeyClick(InputKeys.LeftControl, InputKeys.Z);
    
    // 1.2 KeyDown
    
    simulation.KeyDown(InputKeys.A);
    
    simulation.KeyDown(InputKeys.A, InputKeys.B);
    
    // 1.3 KeyUp
    
    simulation.KeyUp(InputKeys.A);
    
    simulation.KeyUp(InputKeys.A, InputKeys.B);
    
    // 1.4 TextEntry
    
    simulation.TextEntry("Hello, World!");
    
    // 1.5 IsKeyDown
    
    simulation.IsKeyDown(InputKeys.A);
    
    // 1.6 ReleaseAllKeys
    
    simulation.ReleaseAllKeys();

    자세한 예제는 여기에서 확인할 수 있습니다.

  • 🖱️ Mouse Simulation

    using Input;
    using System.Diagnostics;
    
    var simulation = Inputs.Use<IMouseSimulation>();
    
    simulation.Debug = true;
    
    // 1.1 Click
    
    simulation.Click();
    
    simulation.Click(10, 10);
    
    simulation.Click(InputMouseButtons.Right);
    
    simulation.Click(InputMouseButtons.Right, 10, 10);
    
    simulation.AbsoluteClick(100, 100);
    
    simulation.AbsoluteClick(InputMouseButtons.Right, 100, 100);
    
    // 1.2 Down
    
    simulation.Down(InputMouseButtons.Left);
    
    simulation.Down(InputMouseButtons.Left, 10, 10);
    
    simulation.AbsoluteDown(InputMouseButtons.Left, 100, 100);
    
    // 1.3 Up
    
    simulation.Up(InputMouseButtons.Left);
    
    simulation.Up(InputMouseButtons.Left, 10, 10);
    
    simulation.AbsoluteUp(InputMouseButtons.Left, 100, 100);
    
    // 1.4 Move
    
    simulation.Move(10, 10);
    
    simulation.AbsoluteMove(100, 100);
    
    // 1.5 Scroll
    
    simulation.Scroll(1);
    simulation.ScrollUp(1);
    
    simulation.Scroll(-1);
    simulation.ScrollDown(1);
    
    // 1.6 Mouse State
    
    simulation.GetMousePosition(out var x, out var y);
    
    simulation.IsMouseDown(InputMouseButtons.Left);

    자세한 예제는 여기에서 확인할 수 있습니다.

©️ Soju06 - MIT Licence