У меня есть небольшая программа, которая имитирует CTR + с & ССЫТ + v (копия & паста) событий, используя систему keybd_event
. Проблема в том, что после запуска программы компьютер продолжает действовать так, как будто нажата клавиша ctrl, а затем - если я нахожу a, он выбирает весь документ, если я рулон колеса мыши, он меняет текст, и т.д. это происходит не только в визуальном редакторе студии, но и в любой другой программе, которая была открыта в то время как программа побежала, как Слово и т.д. Вот мой код:клавиши Ctrl сдерживала после имитации клавиши Ctrl вниз событий и Ctrl ключа до события
//The system keyboard event.
[System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)]
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
public const int KEYEVENTF_EXTENDEDKEY = 0x0001; //Key down flag
public const int KEYEVENTF_KEYUP = 0x0002; //Key up flag
public const int VK_LCONTROL = 0xA2; //Left Control key code
public const int C = 0x43; // C key code
public const int V = 0x56; // V key code
static void Main(string[] args)
{
Thread.Sleep(1000);// So I have time to select something.
//Simulate ctrl+c
keybd_event(VK_LCONTROL, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(C, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(C, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);
//Simulate ctrl+v
keybd_event(VK_LCONTROL, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(V, 0, KEYEVENTF_EXTENDEDKEY, 0);
keybd_event(V, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);
}
ли кто-то знает, что я мог сделать, чтобы решить эту проблему проблема?
Не используйте KEYEVENTF_EXTENDEDKEY, вместо этого используйте 0. Не используйте VK_LCONTROL, вместо этого используйте VK_CONTROL. –