程序SendMessage,(当然,这种实现是有限的)

解决方案 »

  1.   

    Garriot(自由枪骑兵)此言差矣
    SnedMessage可以完成此种功能。
    要源码,Pls电我:
    [email protected]
      

  2.   

    可以摸拟键盘输入事件:用key_event
      

  3.   

    用PostMessage也好,修改虚拟键表也好,模拟键盘事件也好,我都试过了.对它没作用.靠DX监测键盘直接通过DirectInput从驱动程序那里得到键盘状态,并不是靠Windows消息处理机制完成的.
      

  4.   

    vxd啊
    哦忘了,你不会,呵呵
      

  5.   

    大家帮帮忙啊,很急的!
        我说具体一点:我想控制WinKawaks模拟器的输入,我试过了用Windows消息的
    方法,但是不照.
        :-)
      

  6.   

    sendkeys最终还是调用了PostMessage
      

  7.   

    SendKeys大概有难度,你要的是发送给WinKawaks模拟器的消息,那么先取得WinKawaks模拟器的窗口句柄,再用SendMessage来发送消息嘛,这只是基本思想而已
      

  8.   

    哎,我早试过SendMessage和PostMessage已经修改系统的虚拟键表和用API
    模拟键盘事件,但都不照.
        SendMessage     压根没反应
        PostMessage     似乎它觉察出是我发给它的消息,它弹出个对话框来
        修改虚拟键表     没反应
        模拟键盘事件     真倒霉,重起之后才把Key_Down事件弄掉
       
        但以上方法对Callusw模拟器是有效的,也就是说程序写得是没问题的
        
        猜想Callusw的输入还是基于Windows消息,但WinKawaks是通过DirectInput
    来输入.DirectInput是直接向驱动程序要当前的物理键盘状态,就是当前键盘所有
    键这个那个的是否被按下.WinKawaks并不理会Windows消息,它几乎是直接从硬件
    获取数据的.即它跳过了Windows消息一层.
        所以我想模拟硬件的键盘,欺骗DirectInput,而不是模拟Windows的虚拟键盘.
      

  9.   

    简单功能 Sendkeys
    复杂一点可以用 SendMessage,PostMessage等窗体消息API函数
      

  10.   

    SendKeys=SendMessage + PostMessage
      

  11.   

    那看来只有进行DirectX编程了呀
      

  12.   

    调用汇编语言程序,汇编程序调用INT 16H
      

  13.   

    汇编编程在Winddows下好想是不可行的老兄,自己看看设备驱动编程吧
      

  14.   

    呵,确实是不行的,调用中断会有一般保护错
    能不能通过欺骗DirectInput来实现?
      

  15.   

    谢谢tuqvb(tuqbasic)兄和hdj0569(猫)兄的温柔和不温柔的指点。
    那么应该可以通过键盘缓冲区端口的I/O操作来实现吧!
      

  16.   

    用DIRECTX编程来实现吗?试一下吧,我不是很了解 DIRECTX, 但作为游戏,它
    应该要使用DIRECTX的吧,而且它也可以提供程序与硬件的接口,要不然试试。VXD吧也许可以吧