yuxijian2020 发表于 2021-10-22 09:40:25

Windows下向其他窗口发送组合键

如题,Windows下怎么向指定的其他窗口发送组合键 比如 Ctrl + CCtrl + V 等等

试了很多方法 csdn上的那些什么 SendMessage 最后个参数的29位置1啊   28位置1啊
什么Spy++抓取消息 然后模拟消息中间发送个 字符啊之类的都试过,通通不行

目前的实现方法是 系统键 使用keybd_event,字符键使用SendMessage
但是这种方法有个很严重的问题,有可能会影响鼠标键盘的操作

给出现在的实现
// 发送窗口激活消息 -->假激活窗口
    ::SendMessage(hwnd, WM_ACTIVATE, WA_ACTIVE, 0);
    Sleep(1);
    // 按下组合键
    keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
    ::SendMessage(hwnd, WM_KEYDOWN, 'V', 0);
    Sleep(1);
    ::SendMessage(hwnd, WM_KEYUP, 'V', 0);
    keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0);

这里Sleep(1) 是为了尽量减少影响实际键盘按键的可能
跪求大神给我个可行的方法{:10_266:}

yuxijian2020 发表于 2021-10-25 09:05:47

别沉啊{:10_284:}
页: [1]
查看完整版本: Windows下向其他窗口发送组合键