加入收藏 | 设为首页 | 会员中心 | 我要投稿 孝感站长网 (https://www.0712zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

windows – 无法使用SendMessage将密钥发送到窗口

发布时间:2021-02-20 12:19:48 所属栏目:系统 来源:网络整理
导读:我正在 Windows下编写一个C程序,它应该将一个ENTER键发送到一个对话框以自动关闭它. 我检索我感兴趣的顶级窗口的句柄(通过EnumDesktopWindows()),然后尝试使用SendMessage发送一个ENTER键(另请注意,通过发送WM_CLOSE关闭窗口工作正常). 以下都不起作用: Sen

我正在 Windows下编写一个C程序,它应该将一个ENTER键发送到一个对话框以自动关闭它.

我检索我感兴趣的顶级窗口的句柄(通过EnumDesktopWindows()),然后尝试使用SendMessage发送一个ENTER键(另请注意,通过发送WM_CLOSE关闭窗口工作正常).

以下都不起作用:

SendMessage( hTargetWindow,WM_CHAR,VK_RETURN,0 );

SendMessage( hTargetWindow,1 );

SendMessage( hTargetWindow,WM_KEYDOWN,1 );
SendMessage( hTargetWindow,WM_KEYUP,1 );

等等…

作为一个可能更简单的场景,我还尝试将ascii密钥发送到记事本.

这应该怎么样?

提前致谢

解决方法

Nick D建议的方式都没有!
令人惊讶的是,以下工作:

PostMessage(hTargetWindow,0);

也就是说,我正在调用PostMessage而不是SendMessage.我不是Windows专家,所以我不完全理解这两个函数之间的区别.

无论如何,这正是我所需要的:向对话框发送一个ENTER键(顺便说一句,我正在模拟Win XP Embedded下注册表项enableDefaultReply的行为).
实际上,这是我需要的,但有一个例外:它似乎只有在整个窗口都有焦点时才有效.但这应该很容易解决.

谢谢你建议PostMessage!

(编辑:孝感站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读