Keyboard Interface - Soju06/Input GitHub Wiki
ํค๋ณด๋ ์ธํฐํ์ด์ค
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();
์๋ณธ ์์ ๋ ์ฌ๊ธฐ์์ ํ์ธํ ์ ์์ต๋๋ค.