Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1229182
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2009-02-03 09:56:32



以前已经知道使用消息函数PostMessage或SendMessage就可以给别的程序发消息,觉得很容易。  
   
  像“按键精灵”此类软件,也应该是使用发消息,模拟键盘鼠标信息的。  
   
  最近,也想编一个类似的程序,谁知不试不知道,一使用,才发现问题多多。  
   
  1、网上很多文章都说,使用PostMessage发消息,可以用记事本测试。  
   
  如:  
  PostMessage(handle,   WM_KEYDOWN,   VK_0,   9)  
   
  这句,我给记事本发消息,记事本没反应。(VK_9我已经定义了,就是数字9)  
  我试了计算器,可以用。WORD下也可以用。就记事本不能用。  
   
  PostMessage(handle,   WM_KEYDOWN,   VK_F5,   0)  
   
  这个在记事本下就可以执行了。  
   
  PostMessage(handle,   WM_KEYDOWN,   VK_TAB,   0)  
   
  这句两个软件下都没反应。我加了一句  
   
  PostMessage(handle,   WM_KEYUP,   VK_TAB,   0)  
   
  情况也是一样。  
   
  2、第二点,就是后台执行的问题。  
   
  作一个循环给后台发消息,如WORD。  
   
  如发送1000个‘A’字符。  
   
  只要焦点离开WORD,好像WORD就不响应消息了。再切换回去,才能继续执行。  
   
  但是这两个问题,我使用了一个叫做“按键游侠”的程序,这两个试验都能在以上三个软件中正确正常执行。  
   
  难道还有另一个消息发送函数,或者PostMessage函数还有新的参数可以达到以上效果?  
   
   
   
   
 

键盘消息的相应随应用程序而异,有些响应WM_KEYDOWN,有些响应WM_KEYUP,有些响应WM_CHAR,有些干脆不响应,直接去读键盘的字符缓冲区

学习!

你是怎么取得WORD的handle的   我猜是这个取得方法不对   焦点的转移才带来问题

友情接分;

phalcon(^o^)    
   
  我想handle应该没问题,要不然WORD在第一种情况下也会出问题。

还有SendMessage。  
 

时间太长,算了,结贴。



--------------------------
新闻:阿里巴巴宣布今年将新招聘5000人
导航:博客园首页  知识库  新闻  招聘  社区  小组  博问  网摘  找找看
阅读(380) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~