none
关于C#调用WindowsAPI-SendMessage的几个问题 RRS feed

  • 问题

  • 第一:PostMessage如何正确发送字符串信息,PostMessage与SendMessage有什么区别?是否可以理解为SendMessage是阻塞的PostMessage是非阻塞的?

    第二:使用SendMessage或者PostMessage如何发送组合按键,例如:给QQ聊天窗体发送Alt+C关闭窗口快捷键。

    第三:SenMessage可否可以给最小化的程序发送字符串信息,也就是说可否可以使用SendMessage发送给非顶层窗口或者非活动窗口?例如:给最小化了的QQ聊天窗口发送信息。

    这三个我试过很多次SendMessage但是仍然没有实现QQ的那个快捷键功能。

    2015年2月4日 3:27

全部回复

  •           1.  你可以理解 为sendmessage 是同步,必须要等到有返回才继续。  postmessage是异步 ,不管返回,发送完成直接继续。

               2. SendMessage或者PostMessage 他们的入参都是一样的 int  和 long 所以你如果要发送 这种组合的快捷键消息,最好你自定义消息ID,然后自己处理。

              3. SendMessage 无法发送字符串消息。只能发 int, long ,这个你可以自己加个转换。不同的 ID,代表不同的处理,类似自己定义协议报文一样。可以给任何窗口发送消息的,只要知道指定窗口的句柄即可。

     你用Sendmessage是无法实现最小化QQ的。QQ的窗口就一个句柄,你没办法去抓句柄处理的。

    2015年2月4日 4:44
  • 不知道能否给个例子关于快捷键那个问题。我自己试过好多次在网上找了很多但是都没有成功。
    2015年2月5日 6:29
  • 你要快捷键什么例子能详细说说你需要什么吗?

    如果是通过消息去点击QQ的最小化好像是不好弄的哦。

    2015年2月8日 15:21