c#
public void SimulateKeyPresses(string keys, string target)
{
const uint INPUT_KEYBOARD = 1;
const uint KEYEVENTF_KEYUP = 0x0002;
var keyList = keys.Split(' ').Select(k => Enum.Parse<VirtualKeyCode>(k.ToUpper())).ToList();
ushort KeyCode = 0;
if (keyList.Count == 0) return;
List<INPUT> inputs = new List<INPUT>();
// Press down each key
foreach (var key in keyList)
{
KeyCode = (ushort)key;
inputs.Add(new INPUT
{
type = INPUT_KEYBOARD,
U = new InputUnion
{
ki = new KEYBDINPUT
{
wVk = KeyCode,
dwFlags = 0
}
}
});
}
// Release each key
foreach (var key in keyList)
{
KeyCode = (ushort)key;
inputs.Add(new INPUT
{
type = INPUT_KEYBOARD,
U = new InputUnion
{
ki = new KEYBDINPUT
{
wVk = KeyCode,
dwFlags = KEYEVENTF_KEYUP
}
}
});
}
// Send the input events
SendInput((uint)inputs.Count, inputs.ToArray(), INPUT.Size);
}
c#
public void SimulateKeyPresses(string keys, string target)
{
const uint INPUT_KEYBOARD = 1;
const uint KEYEVENTF_KEYUP = 0x0002;
var keyList = keys.Split(' ').Select(k => Enum.Parse<VirtualKeyCode>(k.ToUpper())).ToList();
ushort KeyCode = 0;
if (keyList.Count == 0) return;
List<INPUT> inputs = new List<INPUT>();
// Press down each key
foreach (var key in keyList)
{
KeyCode = (ushort)key;
inputs.Add(new INPUT
{
type = INPUT_KEYBOARD,
U = new InputUnion
{
ki = new KEYBDINPUT
{
wVk = KeyCode,
dwFlags = 0
}
}
});
}
// Release each key
foreach (var key in keyList)
{
KeyCode = (ushort)key;
inputs.Add(new INPUT
{
type = INPUT_KEYBOARD,
U = new InputUnion
{
ki = new KEYBDINPUT
{
wVk = KeyCode,
dwFlags = KEYEVENTF_KEYUP
}
}
});
}
// Send the input events
SendInput((uint)inputs.Count, inputs.ToArray(), INPUT.Size);
}