Здравствуйте. Хотел попросить помощи в следующем вопросе: как эмулировать ввод Alt + NumPad* ?
У меня есть XML-файл с инструкциями, аля:
<Action Name="KeyDown" Key="ALT">
<Action Name="KeyDown" Key="NUMPAD1">
<Action Name="KeyUp" Key="NUMPAD1">
<Action Name="KeyDown" Key="NUMPAD2">
<Action Name="KeyUp" Key="NUMPAD2">
<Action Name="KeyUp" Key="ALT">
Эти инструкции считываются и по каждому Action создаётся INPUT, который посылается WinAPI:
WinAPI.INPUT action = new WinAPI.INPUT();
action.Type = (UInt32)SendInputEventType.InputKeyboard;
action.Data.Keyboard = new WinAPI.KEYBDINPUT((uint)_action, (ushort)_key);
WinAPI.SendInput(1, new WinAPI.INPUT[] { action }, System.Runtime.InteropServices.Marshal.SizeOf(action));
Конструктор KEYBDINPUT:
public KEYBDINPUT(uint action, ushort key)
{
Vk = key;
Scan = 0;
Time = 0;
Flags = action;
ExtraInfo = IntPtr.Zero;
}
Комбинации клавиш : Ctrl + A, Ctrl + C, Ctrl + V, работают, а Alt + NUMPAD - ничего не вводит.
Пробовал через Scan, c помощью скан кода и флага KEYEVENTF_SCANCODE. Получилось ровно тоже самое.
Пытался запоминать целую комбинацию и отправлять её как список, но у меня вообще перестало что-либо выводить. Не думаю, что проблема в этом, ведь остальные комбинации работают.
Можно попробовать
SendKeys.Send("%{MULTY}");
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники