wjp 发表于 2019-1-24 22:26:06

keybd_event模拟按键输出字符问题

#include<Windows.h>
#include<stdlib.h>
int main(int argc, char* argv[])
{
        int i=33;
        while(i<128)
        {
        keybd_event('w',0,0,0);
        keybd_event('w',0,2,0);
        i++;
        Sleep(3000);
        }
        return 0;
}
为啥我直接写字符‘w'无法模拟键盘按键,所有的英文字符都不行这是为啥啊,我记得好像以前可以的啊,但是我直接输出数字字符就行比如’1‘
这是为什么都是字符啊{:10_266:}{:10_266:}想不通

人造人 发表于 2019-1-24 23:55:18

说真的,太巧了,我最近几天刚刚写了2个程序,都用到了keybd_event函数^_^

https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-keybd_event

keybd_event函数的第1个参数是
virtual-key code

Virtual-Key Codes
https://docs.microsoft.com/zh-cn/windows/desktop/inputdev/virtual-key-codes

这张表中没有小写字母
大写字符 ‘A’ 和小写字符‘a’的编码都是大写字符‘A’

keybd_event('A',0,0,0); 输入的是小写字符‘a’

要想输入大写字符‘A’怎么办?
你在键盘上怎么输入,在这里就怎么输入

输入大写字符要按shift

输入大写字符‘A’
keybd_event(VK_LSHIFT, 0, 0, 0);                // 按下shift
keybd_event('A', 0, 0, 0);                        // 按下字符‘A’
keybd_event('A', 0, KEYEVENTF_KEYUP, 0);        // 松开字符‘A’
keybd_event(VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0);        // 松开shift



小写就不要按shift
keybd_event('A', 0, 0, 0);                        // 按下字符‘A’
keybd_event('A', 0, KEYEVENTF_KEYUP, 0);        // 松开字符‘A’

wjp 发表于 2019-1-25 23:19:53

人造人 发表于 2019-1-24 23:55
说真的,太巧了,我最近几天刚刚写了2个程序,都用到了keybd_event函数^_^

https://docs.microsoft.com/ ...

明白了,谢谢,没想到还能这样玩{:10_257:}{:10_257:}

wjp 发表于 2019-1-25 23:30:42

大佬套接字这块有研究吗,你帮我看看我代码哪错了了吗https://fishc.com.cn/forum.php?mod=viewthread&tid=126373&mobile=2以前的贴

人造人 发表于 2019-1-30 13:47:39

wjp 发表于 2019-1-25 23:30
大佬套接字这块有研究吗,你帮我看看我代码哪错了了吗https://fishc.com.cn/forum.php?mod=viewthread&tid= ...

第1,你在你的帖子下面回复我,我根本就看不到,我没有收到通知,今天偶然翻了一下你的帖子才看到这个
第2,给你2个程序自行研究
链接:https://pan.baidu.com/s/1UnUraWYFCIVGUUK_T5wX7g
提取码:g38f

第3,善用网络,百度是你的朋友


wjp 发表于 2019-1-30 16:09:20

人造人 发表于 2019-1-30 13:47
第1,你在你的帖子下面回复我,我根本就看不到,我没有收到通知,今天偶然翻了一下你的帖子才看到这个
...

嗯嗯 谢谢,以前在百度在找好久没怎么搞明白,所以找大佬请教下{:10_266:}
页: [1]
查看完整版本: keybd_event模拟按键输出字符问题