标题:请问:模拟键盘输入??
只看楼主
kem173806992
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-11-19
 问题点数:0 回复次数:4 
请问:模拟键盘输入??
今天突然想出,自己做个按键精灵的工具出来,
我玩的游戏,用了按键,游戏会识别出来,会封号,所以想试试自己做一个.

我写了一个简单的模拟键入F1的程序
用了一个Timer控件..每隔2秒激活一次

Timer里面调用了SendKeys.Send("{F1}");
运行后...在其他软件..好象Word..都可以实现自动弹出帮助文档
但当进入游戏里面....就一点反应都没有...请大家指教指教...发表一下...谢谢
搜索更多相关主题的帖子: 键盘 模拟 输入 
2008-01-04 18:13
T.t.T!Ck.¢#
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-12-6
得分:0 
你那种只是对当前的应用程序有用而已
你需要的应该是对于整个操作系统来说的模拟键盘输入
你需要明白操作系统的消息机制

给你一段我之前项目中的代码吧
你参考一下

//定义键盘变量及函数
        [System.Runtime.InteropServices.DllImport("user32")]
        static extern void keybd_event(
            byte bVk,
            byte bScan,
            uint dwFlags,
            uint dwExtraInfo
            );
        const uint KEYEVENTF_EXTENDEDKEY = 0x1;
        const uint KEYEVENTF_KEYUP = 0x2;
        public static void KeyBoardDo(int [] key)
        {
            foreach(int k in key)
            {
                keybd_event((byte)k,0x45, KEYEVENTF_EXTENDEDKEY | 0, 0);
            }
            foreach(int k in key)
            {
                keybd_event((byte)k, 0x45,KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
            }
        }



public static void KeyBoardDo(int [] key)
调用这个方法就可以了

至于 每个按键的值。。你去查一下键盘的编码对照表吧
2008-01-04 21:25
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
得分:0 
需要做一个全局热键,这个你需要参考相关资料吧。

浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2008-01-04 21:58
yx880502
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2008-5-5
得分:0 
有高人飘过的话顺便解释一下这4个参数是什么意思,不胜感激!
static extern void keybd_event(
           byte bVk,
           byte bScan,
           uint dwFlags,
           uint dwExtraInfo
           );
2008-05-08 14:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-195895-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.260585 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved