我做了一个简单的用keybd_event模拟键盘按键的程序,热键是F10, 模拟的消息是键盘按一次"i"(说明:i键在我玩的游戏是个功能按钮,可以显示人物状态),运行这个程序,再运行游戏程序, 在游戏(全屏)界面中按下F10时情况如下:在游戏界面中按F10,没有反应(我的目的是要显示人物状态,但目的没有达成)按回车, 游戏界面出现聊天界面,可以输入文本,按F10,输入框里输入了一个i, 请高手指教这是怎么回事!! 

解决方案 »

  1.   

    http://www.csdn.net/develop/Read_Article.asp?Id=15435
    有一定的帮助
      

  2.   

    试试  
    在keybd_event后加上一句
    application.ProcessMessages ;
      

  3.   

    我想这样的程序是和delphi一样的问题吧,delphi有的事件就是检查键盘状态,而不是看你送过来的按键消息的。
      

  4.   

    所以应该是系统认为是f10而不是i
    应该设置系统按键信息表。
    如下
    SetKeyBoardState
    GetKeyboardState
    这2个函数可以帮助你设置系统按键。这样可以骗过delphi的扫描的。
      

  5.   

    在delphi中ctrl,alt,shift在keydown中如果用你的方法应该无效吧。delphi扫描这几个按键是否按下了。
      

  6.   

    最后才发现是n年前的帖子了啊,junerr(路在何方) 也不知道那里找到的垃圾贴,看来分数是没指望了,楼主还不知道在不在了,说不定得沸点死了呢?!:(