怎样模拟键盘一个键的按住不放?比较困惑,标题够长

creamymami 2010-08-11 02:56:18
我用::keybd_event('A',MapVirtualKey('A',0),0,0);模拟“A”键按下,可是屏幕里只出现一个A,并不像按住真键盘一样会出现一串A。我看了下keybd_event函数、SendInput函数、WM_KEYDOWN消息,都没发现有相关的参数可以模拟真键盘按住不放的效果。
请问除了自己安定时器、定时发送一串消息以外,有没有更简单的办法?比如某个函数就能搞定。谢谢
...全文
532 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wysbk002 2010-08-11
  • 打赏
  • 举报
回复
是键盘 频率 消息的高低
creamymami 2010-08-11
  • 打赏
  • 举报
回复
还有一个问题,控制面板键盘设置里的“字符重复”设置,是设置的消息发送端的间隔时间,还是消息接收端的间隔时间?
wysbk002 2010-08-11
  • 打赏
  • 举报
回复
起个线程 等方式很多 这个就是另外个问题啦
Eleven 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 creamymami 的回复:]
遇到个问题。。。在循环里发消息,由于循环不结束,就无法继续执行;由于无法继续执行,就改变不了使循环结束的变量的值。。。这个矛盾貌似无法解决

那么只能在定时器里发消息了。。。只有这个办法了么?
[/Quote]
如果你用循环的话,你可以放在子线程里去做啊,当然不能在主线程里搞啊
creamymami 2010-08-11
  • 打赏
  • 举报
回复
遇到个问题。。。在循环里发消息,由于循环不结束,就无法继续执行;由于无法继续执行,就改变不了使循环结束的变量的值。。。这个矛盾貌似无法解决

那么只能在定时器里发消息了。。。只有这个办法了么?
wysbk002 2010-08-11
  • 打赏
  • 举报
回复
楼上的想分(ˇˍˇ) 想~疯了?
我宁愿帮人家解决了问题分多少无关系
Eleven 2010-08-11
  • 打赏
  • 举报
回复
定时器+SendInput/keybd_event是可以的
SuperLampard 2010-08-11
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分
q8121676 2010-08-11
  • 打赏
  • 举报
回复
发送消息 WM_KEYDOWN
然后不发送 WM_KEYUP就可以了撒?
ggf115 2010-08-11
  • 打赏
  • 举报
回复
这个不一样的,使用keybd_event()表示一个键一直被按下,它只被按下一次,所以只出现了一个字符,
而在键盘上一直按住一个键,操作系统实际上收到的是一连串的按下和松开消息,所以会出现一串字符。
要像健盘上那样按下一个键出现一连串的字符,除在定时器里完成外,可能就是设置一个死了循环了。。。。
peterdan 2010-08-11
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
creamymami 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wysbk002 的回复:]
Sendmessage消息处理了才返回 (同步)
Postmessage不管是否处理直接返回 (异步)
[/Quote]

是这样啊,我还是先试试看效果吧,谢谢。
wysbk002 2010-08-11
  • 打赏
  • 举报
回复
Sendmessage消息处理了才返回 (同步)
Postmessage不管是否处理直接返回 (异步)
xunfeng_2008 2010-08-11
  • 打赏
  • 举报
回复
没有理解消息机制
creamymami 2010-08-11
  • 打赏
  • 举报
回复
直接在循环里发送就可以?不用设置定时器?那样会不会发多了,导致按键松开的时候还在处理WM_KEYDOWN?
zjz800800 2010-08-11
  • 打赏
  • 举报
回复
你没有理解消息机制,mfc的消息机制就可以完成你的任务,"发按键消息",postmessage就ok。
wysbk002 2010-08-11
  • 打赏
  • 举报
回复
发送消息 WM_KEYDOWN
然后不发送 WM_KEYUP就可以了撒?

或者循环WHILE(TRUE)
{
发送按键消息;
if True then
break;

}
yuhuaijun 2010-08-11
  • 打赏
  • 举报
回复
友情帮顶, 期待高手

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧