1、昨天我参照书籍和网上资料编了一个截获键盘信息的程序,用到了键盘钩子函数,把它定义在一个DLL文件中,通过主程序调用,在一个指定的文本中记录下键盘信息,不过通过调试,发现在文件中显示的键盘信息都是双份的,也就是说,在键盘上输入j,在文本中显示的是两个J,在键盘上输入jiang,文本中显示的是JJIIAANNGG,还有在数字键输入的数字都用小写字母表示,也就是输入1,显示a,2显示b,依次类推,0显示',但是用字母键上面的数字键输入数字显示正常,输入字母无法区分大小写,显示全为大写,而且输入特殊字符,显示的是乱码,请问这些问题怎么解决?怎么样正常显示?
2、我想通过编程实现监视系统,当用户打开一个程序,怎么样识别这个程序是不是我需要的程序?
一个问题50分,要是详细,可以再加,也可以通过E-MAIL和我联系,[email protected]
小弟先在这里谢过!

解决方案 »

  1.   

    1、是不是虚拟了一个键盘按键操作。
    2、如果还想用勾子,可以用API HOOK来截获程序,做成一个服务程序
      

  2.   

    键盘按一下一个健,有两个消息,key_down,key_up,你处理一下钩子就行了,
    你做个一个程序发键盘消息给另外一个程序吗?,比如发alt+a消息到另外的一个程序,我老是不成功,组合健的不成功,请指教!
      

  3.   

    能详细点吗?PowerVR(魍魉鬼)朋友!
      

  4.   

    1:只用截获key_down,key_up中一个消息即可
    2:可以取得窗口标题或类名(若唯一),以确认是否是你允许的程序
      

  5.   

    代码很多,键盘钩子有很多例子,你可以到codelphi.com去看看
      

  6.   

    怎么?没有人可以回答了吗?!我昨天用if wparam=WM_KEYDOWN then ……结果什么也不输出了,不知道为什么?我现在头都有太阳那么大了!
      

  7.   

    sendmessage(edit.handle,wm_keydown,vk_tab,0)  tab键
    sendmessage(edit.handle,wm_keydown,vk_return,0)  return键
    vk_f1是f1键 ,and so on!