Skip to content

Keyboard Interface

Soju06 edited this page Dec 7, 2021 · 7 revisions

키보드 인터페이스

Input.IKeyboardHook

키보드 후크 인터페이스

  • 예제

      using Input;
      using Input.Platforms.Windows;
      using System.Diagnostics;
    
    
      // 키보드 후커를 만듭니다.
      // 만약 지원하지 않는 플랫폼인 경우 NotSupportedException 예외가 발생할 수 있습니다.
      var hook = Inputs.Use<IKeyboardHook>();
    
      // 디버그를 활성화 합니다.
      // 네이티브 오류를 디버그 출력 창에서 확인할 수 있습니다.
      hook.Debug = true;
    
      // 키보드 모델입니다.
      var model = hook.KeyboardModel;
    
      // 키보드가 눌렸을때 발생합니다.
      model.KeyDown += (sender, key, state) => {
      // Console은 쓰기 지연이 발생하므로 추천하지 않습니다.
      Debug.WriteLine($"KeyDown: {key} {state}");
    
          // 반환 값이 false이면 입력을 무시합니다.
          return true;
      };
    
      // 키보드가 떼졌을때 발생합니다.
      model.KeyUp += (sender, key, state) => {
      // Console은 쓰기 지연이 발생하므로 추천하지 않습니다.
      Debug.WriteLine($"KeyDown: {key} {state}");
    
          // 반환 값이 false이면 입력을 무시합니다.
          return true;
      };
      
      // 후킹을 시작합니다.
      hook.HookStart();
    
      // 플랫폼이 윈도우인 경우 윈도우 메시지를 펌프해야합니다.
      if (Platform.IsWindows) {
          while (WindowsMessagePump.Pumping()) {
              Debug.WriteLine("message pump");
          }
      }
    
      Console.ReadLine();

    원본 예제는 여기에서 확인할 수 있습니다.


Input.IKeyboardSimulation

키보드 시뮬레이션 인터페이스

  • 예제

      using Input;
      using System.Diagnostics;
    
      // 키보드 시뮬레이션를 만듭니다.
      // 만약 지원하지 않는 플랫폼인 경우 NotSupportedException 예외가 발생할 수 있습니다.
      var simulation = Inputs.Use<IKeyboardSimulation>();
    
      // 디버그를 활성화 합니다.
      // 네이티브 오류를 디버그 출력 창에서 확인할 수 있습니다.
      simulation.Debug = true;
    
    
      // 1.1 KeyClick
    
      // A 키를 클릭합니다.
      simulation.KeyClick(InputKeys.A);
    
      // 왼쪽 컨트롤 키와 Z키를 동시에 클릭합니다.
      simulation.KeyClick(InputKeys.LeftControl, InputKeys.Z);
    
      // 1.2 KeyDown
    
      // A 키를 누릅니다.
      simulation.KeyDown(InputKeys.A);
    
      // A 키와 B키를 누릅니다.
      simulation.KeyDown(InputKeys.A, InputKeys.B);
    
      // 1.3 KeyUp
    
      // A 키를 뗍니다.
      simulation.KeyUp(InputKeys.A);
    
      // A 키와 B키를 뗍니다.
      simulation.KeyUp(InputKeys.A, InputKeys.B);
    
      // 1.4 TextEntry
    
      // H e l l o , W or l d ! 키를 순차적으로 누릅니다.
      simulation.TextEntry("Hello, World!");
    
      // 1.5 IsKeyDown
    
      // A 키가 눌려있는지 여부를 가져옵니다.
      simulation.IsKeyDown(InputKeys.A);
    
      // 1.6 ReleaseAllKeys
    
      // 키보드의 모든 키를 뗍니다.
      simulation.ReleaseAllKeys();

    원본 예제는 여기에서 확인할 수 있습니다.

📄 API Interface

📚 API Example

Clone this wiki locally