1.png

因为主要游戏都在windows跑,没什么好说的,第一步应该是获取窗口句柄。
在按键精灵帮助下,我们知道了游戏窗口句柄的类名和名字分别为"fgba.net",“富贵吧”。
利用win32gui的函数,获取到窗口句柄,并稍微调整一下我们理想的大小。

import win32con
import win32gui
import win32api
hwnd=win32gui.FindWindowEx(0,0,"fgba.net","富贵吧")
win32gui.SetForegroundWindow (hwnd)
if(win32gui.IsIconic(hwnd)):

win32gui.ShowWindow(hwnd, win32con.SW_RESTORE)

win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 300,200,1200,800,win32con.SWP_SHOWWINDOW)
这样就完成对窗口的激活和尺寸,位置设定了。
接下来我们先做一个模块的功能,比如自动摆摊购买,因为端游模式和手游模式摆摊位置不同,我们首先确定为端游模式的坐标。
自动购买第一步,首先是鼠标能移动到‘’藏宝阁‘’图标上
然后我们关注我们需要抢购的东西,再拿他与我们需求的价格做对比,如果小于我们理想的价格,则让脚本自动购买。
所以模拟键盘鼠标的操作和价格识别就显得尤为重要。以下为关注界面,每点击一次关注就会刷新,似乎有点击事件间隔限制。
'''我们希望脚本是在端游模式跑起来的,方便测试,先默认一个Mode为端游模式,后期可以设置一个检查模式功能'''

Mode='端游模式'if(Mode=='端游模式'):
win32api.SetCursorPos([557, 584])
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

启动脚本后,发现鼠标虽然移动成功,但是单击命令似乎只能在游戏之外的窗口才会执行?
为什么呢?
这是由于屏蔽了系统API提供的模拟输入,包括键盘鼠标的模拟操作都不会生效。
看起来事情并不简单。
那怎么办?
别急,我们可以模拟键盘鼠标驱动的硬件操作。
以下理一下我们思路
目的:我们希望模拟键盘和鼠标的操作。
可以使用方式或库:
pyinput
autopy
win32api
winio
vb类似于按键精灵的模式
前面三种已经证明不可行,因为都是api层面的操作,一定都会被游戏系统屏蔽。
关于第四种可以实现IO驱动的模拟
介绍winio
但是进入github查看说明文档发现:

也就是说,winio的python接口还不支持win10,其他语言倒是可以支持,但是我们的代码不就前功尽弃了吗?
因此联想到可以使用vb的按键精灵模式来实现模拟输入。
在这里我们并不是要推翻整个代码重写,更不是把语言换成vbscript,我们可以通过调用按键精灵某些插件实现模拟的键盘鼠标输入。
今天就分析到这里,下一篇富贵论坛www.fgba.net来讲讲怎么使用python调用vb脚本实现键盘鼠标的dx游戏模拟输入吧。


更多相关文章

  1. 区块链交易所开发,合约交易模式搭建
  2. MVC架构模式思想
  3. MVC架构模式,依赖注入,对象容器与门面技术
  4. 几种常用设计模式的简单示例
  5. php简单实现模拟用户登陆验证
  6. PHP模拟用户登陆验证
  7. 绝密公式算单双准确率99最强计划方案
  8. 17.)PHPWeb开发框架~Laravel中模型操作使用快速入门(AR模式)讲解
  9. TP6之多数据库,路由设置与多应用模式

随机推荐

  1. 将Android Activity设置成对话框样式
  2. Android巴士
  3. 如何解决App无法收到android开机广播
  4. 在Android中根据联系人查询电话号码
  5. windows下载android源代码
  6. Android中显示照片的Exif信息
  7. 高仿Android 点心桌面皮肤实现方式
  8. 【Android车载系统 News | Tech 3】News
  9. 博客园app for xamarin android一款简洁
  10. Android中的sqlite简单示例