Я пытаюсь отправить клавишу со стрелкой вниз в диспетчере задач, но она не работает. Кстати, я пишу на C#. Есть ли способ сделать это на моем языке? Я пробовал много разных методов моделирования клавиатуры, например keybd_event.
Стрелка вниз работает так же, как когда я нажимаю ее на клавиатуре.
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
class Program
{
// Importing keybd_event from user32.dll
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr SetForegroundWindow(IntPtr hWnd);
// Virtual key codes
const byte VK_CONTROL = 0x11;
const byte VK_SHIFT = 0x10;
const byte VK_ESCAPE = 0x1B;
// Key event flags
const uint KEYEVENTF_KEYDOWN = 0x0000;
const uint KEYEVENTF_KEYUP = 0x0002;
static void Main()
{
// Open Task Manager
OpenTaskManager();
}
static void OpenTaskManager()
{
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYDOWN, 0); // push
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYDOWN, 0);
keybd_event(VK_ESCAPE, 0, KEYEVENTF_KEYDOWN, 0);
keybd_event(VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0); // release
keybd_event(VK_SHIFT, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... rd-presses
Как имитировать нажатия аппаратной клавиатуры ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Насколько стандарты C и C++ адаптируются к гипотетической тройной аппаратной архитектуре?
Anonymous » » в форуме C++ - 0 Ответы
- 40 Просмотры
-
Последнее сообщение Anonymous
-