你好获取登录信息中




首页 主站 文章列表 分类列表
查看文章返回文章列表

最近正在研究的WIN32API

发布时间:2018-03-11 20:46:42 by:



也许大家已经注意到最近没有什么更新放出来。是的,我感觉我现在就是一条咸鱼了,已经没有多少动力去码什么东西了,有些东西也反应不过来了,甚至于有点沉迷游戏。或许这就是别人所说的所谓的“老了”吧。不过为了解放双手还是做个小程序来自动执行游戏中一些重复的动作。然而,我还没咸鱼到用按键精灵来做。查阅资料后,为了方便,决定用C#调用win32API,顺便学学Win32API的使用。

然而,这其实并不是一个太好的主意。。首先,我先大致的处理好界面,废了一些功夫,然后终于弄好了热键,获取鼠标当前位置的写起来也还算容易,接下来用keybd_event做模拟按键了,先到记事本里面试了一下,确实是有用的,于是打开游戏测试——哇!什么反应也没有。放弃,其实也考虑到这游戏大概用DX写的,不吃这套。不过抱着试一试的心态,加上别人说有后台运行的脚本(可以把游戏最小化挂机),于是开始用SendMessage,第一次测试:无效——甚至对记事本都没用了。emm,然后查明问题,不能对整个窗口的窗口句柄使用,然而,我怎么会知道游戏用来接收控制的是那个子句柄?然后找到了FindWindowEx遍历窗口的子句柄的一个方案,测试,程序直接崩溃,经过反复排查发现是从网上copy来的引入dll中函数的地方有问题,导致无法访问。修复之后,测试,成功向记事本写入之前设定的字符,再次换游戏测试——结果依然无效,差不多是宣告这类windows消息机制的方案全部无效,用winIO的库做几乎硬件级的模拟按键看起来是一个不错的方案,但是我并不是很喜欢采用这种方案,同时,怕是会被封号。。实际测试,仍然不好使(因为这玩意本来就有很多前条件)。至于钩子,一来比较麻烦,而来怕弄出问题来,决定最后试试SendInput。不过目前来看依旧无效——即使是对记事本——大概是我的使用方式不对吧。要是这个方案也不行的话,难道我真的只能屈服于按键精灵?或者用单片机直接向usb口写入?然而,我现有的开发板都是串口通信的,尽管有串口转usb的线,但似乎并没有多少帮助,好像得重新做个板子,不过我没进实验室(虽然曾经有机会进的,但是死于不想暑假留校一个月),上哪去弄这种印刷电路板。。怕是价格贵得吓人。。。

总之,现在网上这方面的中文资料确实不多,很多复制粘贴来的,好点的还有加入点自己的心得体会。但是甚至于有些东西的值(当然,如果用C写,这些东西都在对应的头文件中,但是,我这里用的C#)都是没讲清楚怎么用,我还得去MSDN上看。哎,但愿我能把SendInput搞定,并且游戏能认吧。哎。。但愿。。如果成功了,我一定会再来写一篇这些API的使用上,没有的话,大概还得花很多时间手动做任务吧。。。

评论
    还没有评论
发表评论
正在等候用户中心返回数据
杂项
。。。