返回提交历史
Modified
XFE各类拓展.NetCore.InputSimulator/InputSimulator.cs
+29
-9
XFEstudio/XFEExtension.NetCore.InputSimulator
修复了不能大小写的bug
dfb3253
代码差异
1 个文件
+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
}