设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 服务器 > 系统 > 正文

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

发布时间:2021-02-20 02:28 所属栏目:52 来源:网络整理
导读:我正在 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!

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读