XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.InputSimulator

【DLL】XFE各类拓展的模拟键盘输入

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension.NetCore.InputSimulator

修复了不能大小写的bug

dfb3253
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

1 个文件 +29 -9
Modified XFE各类拓展.NetCore.InputSimulator/InputSimulator.cs +29 -9
@@ -1,5 +1,6 @@
1 1 using System.Drawing;
2 2 using System.Runtime.InteropServices;
3 using System.Text;
3 4
4 5 namespace XFE各类拓展.NetCore.InputSimulator;
5 6
@@ -91,11 +92,20 @@ public static partial class InputSimulator
91 92 /// <param name="keys">待输入按键</param>
92 93 public static void InputKeys(string keys)
93 94 {
94 foreach (var key in keys)
95 foreach (var key in keys.Select(key => key.ToString()))
95 96 {
96 byte keyCode = (byte)key;
97 keybd_event(keyCode, 0, KEYEVENTF_KEYDOWN, IntPtr.Zero);
98 keybd_event(keyCode, 0, KEYEVENTF_KEYUP, IntPtr.Zero);
97 if (key.ToUpper() == key)
98 {
99 keybd_event(0x10, 0, KEYEVENTF_KEYDOWN, IntPtr.Zero);
100 keybd_event(Encoding.ASCII.GetBytes(key).FirstOrDefault(), 0, KEYEVENTF_KEYDOWN, IntPtr.Zero);
101 keybd_event(Encoding.ASCII.GetBytes(key).FirstOrDefault(), 0, KEYEVENTF_KEYUP, IntPtr.Zero);
102 keybd_event(0x10, 0, KEYEVENTF_KEYUP, IntPtr.Zero);
103 }
104 else
105 {
106 keybd_event(Encoding.ASCII.GetBytes(key.ToUpper()).FirstOrDefault(), 0, KEYEVENTF_KEYDOWN, IntPtr.Zero);
107 keybd_event(Encoding.ASCII.GetBytes(key.ToUpper()).FirstOrDefault(), 0, KEYEVENTF_KEYUP, IntPtr.Zero);
108 }
99 109 }
100 110 }
101 111 /// <summary>
@@ -107,12 +117,22 @@ public static partial class InputSimulator
107 117 /// <returns></returns>
108 118 public static async Task InputKeysAsync(string keys, int holdTime = 0, int delay = 0)
109 119 {
110 foreach (var key in keys)
120 foreach (var key in keys.Select(key => key.ToString()))
111 121 {
112 byte keyCode = (byte)key;
113 keybd_event(keyCode, 0, KEYEVENTF_KEYDOWN, IntPtr.Zero);
114 await Task.Delay(holdTime);
115 keybd_event(keyCode, 0, KEYEVENTF_KEYUP, IntPtr.Zero);
122 if (key.ToUpper() == key)
123 {
124 keybd_event(0x10, 0, KEYEVENTF_KEYDOWN, IntPtr.Zero);
125 keybd_event(Encoding.ASCII.GetBytes(key).FirstOrDefault(), 0, KEYEVENTF_KEYDOWN, IntPtr.Zero);
126 await Task.Delay(holdTime);
127 keybd_event(Encoding.ASCII.GetBytes(key).FirstOrDefault(), 0, KEYEVENTF_KEYUP, IntPtr.Zero);
128 keybd_event(0x10, 0, KEYEVENTF_KEYUP, IntPtr.Zero);
129 }
130 else
131 {
132 keybd_event(Encoding.ASCII.GetBytes(key.ToUpper()).FirstOrDefault(), 0, KEYEVENTF_KEYDOWN, IntPtr.Zero);
133 await Task.Delay(holdTime);
134 keybd_event(Encoding.ASCII.GetBytes(key.ToUpper()).FirstOrDefault(), 0, KEYEVENTF_KEYUP, IntPtr.Zero);
135 }
116 136 await Task.Delay(delay);
117 137 }
118 138 }