Вопрос Работа с клавиатурой. Не в WPF/WinForms

Начинающий
Статус
Оффлайн
Регистрация
14 Сен 2020
Сообщения
179
Реакции[?]
18
Поинты[?]
0
Как имитировать нажатие кнопки в C#? Не в WPF/WinForms
Как например в Python есть библиотека Keyboard.

Python:
keyboard.press_and_release('space')
keyboard.write('Some text')
Я перерыл весь интернет в поисках ответа но ничего не нашёл, кроме как нажатие кнопок в WPF/WinForms.
Может я что-то не понимаю? Объясните.

P.S. Только начинаю учить C#
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
14 Сен 2020
Сообщения
179
Реакции[?]
18
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
14 Сен 2020
Сообщения
179
Реакции[?]
18
Поинты[?]
0
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,442
Реакции[?]
671
Поинты[?]
30K
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Будет работать без использования System.Windows.Forms:
C#:
static class Program
{
    const UInt32 WM_KEYDOWN = 0x0100;
    const int VK_F5 = 0x74;

    [DllImport("user32.dll")]
    static extern bool PostMessage(IntPtr hWnd, UInt32 Msg, int wParam, int lParam);

    [STAThread]
    static void Main()
    {
        while(true)
        {
            Process [] processes = Process.GetProcessesByName("iexplore");

            foreach(Process proc in processes)
                PostMessage(proc.MainWindowHandle, WM_KEYDOWN, VK_F5, 0);

            Thread.Sleep(5000);
        }
    }
}
 
Monolith Development
Участник
Статус
Оффлайн
Регистрация
8 Мар 2018
Сообщения
542
Реакции[?]
195
Поинты[?]
31K
C#:
[DllImport("user32.dll")]
private static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
protected void KeyDown(byte key)
{
       keybd_event(key, 0, 1 | 0, 0);
}
protected void KeyUp(byte key)
{
       keybd_event(key, 0, 1 | 2, 0);
}
 
Сверху Снизу