失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python引入op模块 实现游戏后台挂机 阴阳师

python引入op模块 实现游戏后台挂机 阴阳师

时间:2019-01-08 20:54:38

相关推荐

python引入op模块 实现游戏后台挂机 阴阳师

python引入op插件实现后台挂机

写在前面:不要违法操作哦

准备工具

需要用到的环境为 python3.74

python3.74传送门代码编写环境 pycharm

pycharm传送门安装python win32的扩展,

win32扩展传送门op插件(类似于大漠插件)

op 0.39传送门实验用到的雷神模拟器

模拟器传送门老工具人阴阳师

这个自己在模拟器内部下载

安装自己随意

op模块用win32模块来打开引用

from win32com.client import Dispatchclass Demo:def __init__(self):# 创建com对象self.op = op = Dispatch("op.opsoft.1");self.hwnd = 0;self.send_hwnd = 0;op.SetPath("C:\\Users\\Administrator\\Desktop\\houtai\\image\\");#全局资源的位置

创建一个方法输出op版本号

def test_qidong(self):# 输出插件版本号print("版本号", self.op.Ver());

输出成功则会显示相应的版本号,在op文档中可以查询相关的报错信息。

雷电模拟器的绑定子窗体的方法

def test_bkmode(self):#绑定self.hwnd = self.op.FindWindowByProcess("dnplayer.exe","LDPlayerMainFrame","雷电模拟器") ;print(self.hwnd);time.sleep(0)hwnd = self.op.FindWindowEx(self.hwnd, "RenderWindow", "TheRender");print("找到子窗体", hwnd);# time.sleep(0.1);r = self.op.BindWindow(hwnd, "opengl", "windows", "windows", 1);# opengl 后台模式 normal 前台模式;if r == 0:print("绑定失败");else:print("绑定成功,,,,");time.sleep(0);

创建一个简单的移动窗口到固定位置的方法,并修改窗体的大小。

def test_windos(self):op_ret = self.op.GetWindowRect(self.hwnd)print(op_ret); #显示窗口初始大小self.op.SetClientSize(self.hwnd,864,497);print("窗口设置为x=867,y=467")self.op.MoveWindow(self.hwnd, 10, 10);print("窗口移动成功10,10");self.op.SetWindowTransparent(self.hwnd,255); #0是隐藏窗口不占位置,完全透明#透明度设置print("设置透明度成功");

在脚本运行完后需要释放绑定方法。

def test_end(self):op_ret = self.op.UnBindWindow();# 退出进程return op_ret;

这是一个用于测试的截图方法验证是否可以后台截图。

def test_jietu(self):op = self.op.Capture(1, 1, 864, 491, "screen.bmp")if op == 1:print("方法调用成功");else:print("截图失败");

测试后台鼠标调用是否正常的方法

def test_dianji(self):ret1 = self.op.MoveTo(29, 46);ret2 = self.op.LeftClick();if ret1==0&ret2==0:print("失败");else:print("成功!");

代码的调用解释

def test_all():demo = Demo();#初始化# demo.test_qidong()#打开雷电的方法demo.test_bkmode()#绑定窗体demo.test_windos()#移动窗体demo.test_jietu()#截图time.sleep(1)#等待1秒demo.test_dianji()#测试点击demo.test_end()#释放函数print("成功结束")return 0;test_all();

这些都成功了那么op插件就完成了绑定,并且完成了一次后台运行的小测试,后续就可以使用它啦,

这里放置完整代码

from win32com.client import Dispatchimport timeimport randomclass Demo:def __init__(self):# 创建com对象self.op = op = Dispatch("op.opsoft.1");self.hwnd = 0;self.send_hwnd = 0;op.SetPath("C:\\Users\\Administrator\\Desktop\\houtai\\image\\");#全局资源的位置def test_qidong(self):# 输出插件版本号print("版本号", self.op.Ver());a = self.op.WinExec("F:\\leidian\\LDPlayer4\\dnplayer.exe", 1);print("打开",a);def test_bkmode(self):#绑定self.hwnd = self.op.FindWindowByProcess("dnplayer.exe","LDPlayerMainFrame","雷电模拟器") ;print(self.hwnd);time.sleep(0)hwnd = self.op.FindWindowEx(self.hwnd, "RenderWindow", "TheRender");print("找到子窗体", hwnd);# time.sleep(0.1);r = self.op.BindWindow(hwnd, "opengl", "windows", "windows", 1);# opengl 后台模式 normal 前台模式;if r == 0:print("绑定失败");else:print("绑定成功,,,,");time.sleep(0);def test_windos(self):op_ret = self.op.GetWindowRect(self.hwnd)print(op_ret);self.op.SetClientSize(self.hwnd,864,497);print("窗口设置为x=867,y=467")self.op.MoveWindow(self.hwnd, 10, 10);print("窗口移动成功10,10");self.op.SetWindowTransparent(self.hwnd,255); #0是隐藏窗口不占位置,完全透明#透明度设置print("设置透明度成功");def test_end(self):op_ret = self.op.UnBindWindow();# 退出进程return op_ret;def test_jietu(self):op = self.op.Capture(1, 1, 864, 491, "screen.bmp")if op == 1:print("方法调用成功");else:print("截图失败");def test_dianji(self):ret1 = self.op.MoveTo(29, 46);ret2 = self.op.LeftClick();if ret1==0&ret2==0:print("失败");else:print("成功!");def test_all():demo = Demo();#初始化# demo.test_qidong()#打开雷电的方法demo.test_bkmode()#绑定窗体demo.test_windos()#移动窗体demo.test_jietu()#截图time.sleep(1)#等待1秒demo.test_dianji()#测试点击demo.test_end()#释放函数print("成功结束")return 0;test_all();

本人萌新一枚,大佬不要捶我,后期会写一个后台运行的yys脚本,欢迎来 282993419 摸鱼。

如果觉得《python引入op模块 实现游戏后台挂机 阴阳师》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。