一.背景介绍

之前一段时间在学习python,有以前的C++基础理解起python来还是没有太大的压力的,看了下语法后打算写一个
简单的程序练练手,同时也熟悉下python的语法,同时呢我也在玩剑灵这款游戏,里面有些技能操作会按的手痛...,所
以就借着这个机会写一个简单的卡刀软件,借鉴了网上的各种取色宏的思路,通过对比技能所在区域的屏幕像素进行模
拟鼠标键盘的操作来完成卡刀的过程,下面就简单介绍下整个流程;

二.思路分析

首先,选择的语言是python,那么就先去看看python的语法,需要知道python的基本内容,原先有其他语言基础
的可以去看看菜鸟教程,教程比较基础,详细,但是是文字类的,不是视频,原先没有语言基础的可以去搜一搜python
相关的视频教程,方便理解学习。
然后,确定软件需要的功能:简单的UI,图像获取功能,图像对比功能,模拟鼠标键盘事件功能;有了这几个功
能后基本就能完成我们这个小工具了。
第三步,这些功能可以选择自己实现或者找python已有的库来完成,既然是初学者嘛,自己用python写这些功能
还是有一定的难度的,所以能已经有的库,就用别人的,么有的就自己实现。

三.知识准备

UI:这里我使用的是python自带的库,Tkinter,文档在这:Tkinter文档,当然还有其他的可以选择例如PyQt,
wxPython等,可以自行选择
图像的获取:主要是获取屏幕上指定区域的像素构成的图片,相当于是一个简单的截图功能,这里选择的是
Pillow这个python图像处理的库,需要进行安装,文档在这:pillow文档,网上搜一搜也是一大堆的教程,
安装命令: pip install pillow
图像的对比:这里我采用的是这篇文章中的做法
鼠标键盘的模拟:使用的是PyUserInput,文档在这:PyUserInput文档,使用起来非常简单,另外说到了鼠标键
盘的模拟,自然要谈一谈鼠标键盘事件的捕捉,可以使用PyHook这个库,文档在这:PyHook文档,使用很简单。
程序打包:使用pyinstaller,文档在这:pyinstaller文档,记得打包时加上--uac命令以便获取管理员权限
这个程序我是我使用了剑灵的UI文件来获取相关技能的图标位置,所以还用到了XML解析相关的库,这里推荐这
篇博客:点击打开链接
其中有些库官方没有64位版本的,可以到这里看看:python库,但需要注意的是,这里的库是非官方版本,不提供任
何保证,仅用于学习使用。

四.问题总结

考虑到这个工具中并不涉及太多的算法,主要是通过阅读以上文档或者网上相关的教程来组织自己的软件的结构
,这里就不贴代码了,完整的代码放在文末,主要是需要对python的语法各种数据结构慢慢理解,运用,这里就介绍
下我写代码的过程中遇到的一些问题:
1.因为卡刀过程需要不断匹配对应图像是否相等,所以需要一个死循环,但是这样就会导致程序失去相应,
后面我使用多线程的方式解决了这个问题,将图像判断的死循环放到另一个线程中处理,这样就不会导致程序失去响
应,多线程的介绍可以参考:点击打开链接
2.程序需要在其他程序内部也能模拟键盘鼠标事件,但是我一开始一直做不到这一点,就是在桌面上能正常
模拟,但是在剑灵程序内部却模拟不了,后面偶然在知乎看到一篇文章提到windows下需要管理员权限,所以我打包程
序的时候添加了获取管理员权限的命令,最后程序就能在剑灵内部也能模拟事件了
3.键盘事件模拟的时候,"V"和“v”是不一样的,少了一个shift按键的动作,这个地方一开始没有注意,
导致程序运行后出现了一些很奇怪的现象,需要按一下shift才能去除,所以这点需要注意
4.还有一些遗留问题,虽然程序可以正常运行,也可以正常匹配图像,并且模拟鼠标键盘事件,但是不够
灵敏,所以作为卡刀程序还是不行的....,不过作为学习python还是可以的,另外我猜测是因为图像匹配算法不够好
,导致运算时间太长,也许可以通过增加线程解决这个问题,不过暂时先在这挖个坑,之后来填把
使用的是python 2.7.13 x64位进行编写
完整代码
  

用python写一个带界面的剑灵取色卡刀工具相关推荐

  1. python写一个带界面母亲节贺卡

    当然可以! 下面是一个简单的例子,使用 Python 的 Tkinter 模块创建一个带界面的母亲节贺卡. 首先,导入 Tkinter 模块: import tkinter as tk

  2. 用Python写一个UI界面

    要用Python写一个UI界面,你可以使用一些图形用户界面(GUI)工具包,如:Tkinter,wxPython,PyQt 等. Tkinter 是 Python 内置的 GUI 库,是一个轻量级的工 ...

  3. python编写的软件界面-用Python写一个带图形界面的文件压缩软件

    这又是一篇用Python写小软件系列,最近有点写上瘾了,文件压缩和解压我们在日常工作学习中会经常用到,比如winrar.快压.好压等压缩软件,猿人学用Python做个简易图形界面的压缩软件. 打开之后 ...

  4. 用python写一个图形界面!

    作为Pyhan开发者,你迟早都会碰到图形用户界面(GUI)应用开发任务,这时候我们就需要一些界面库来帮助我们快速搭建界面,python的界面库很多,我认识的并不多,这里只列出几种我认识的 1.tkin ...

  5. 请用Python写一个爬虫程序,爬取当当网图书畅销榜数据

    好的,下面是一个简单的 Python 爬虫代码,可以爬取当当网图书畅销榜数据: import requests from bs4 import BeautifulSoupurl = "htt ...

  6. python软件界面-用Python写一个语音播放软件

    原标题:用Python写一个语音播放软件 单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的 ...

  7. pythongui登录界面密码显示_用python写一个带有gui界面的密码生成器

    需要用到的库: tkinter:构建gui界面 pyperclip:复制功能 random:生成随机数 string:处理字符串 代码: from tkinter import * import ra ...

  8. 贪吃蛇博弈算法python_算法应用实践:如何用Python写一个贪吃蛇AI

    原标题:算法应用实践:如何用Python写一个贪吃蛇AI 前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势 ...

  9. 用python做一个简单的游戏,用python写一个小游戏

    大家好,本文将围绕如何用python做一个简单的小游戏展开说明,python编写的入门简单小游戏是一个很多人都想弄明白的事情,想搞清楚用python做一个简单的游戏需要先了解以下几个事情. 1.Pyt ...

最新文章

  1. ZeroMq实现跨线程通信
  2. 百度咋做长文本去重(一分钟系列)--转
  3. leetcode585. 2016年的投资(SQL)
  4. mysql 开发基础系列19 触发器
  5. Ubuntu安装ASIO开发库
  6. android自定义ViewPager之——处理与ScrollView的事件冲突
  7. web安全 mysql 提权
  8. shl归纳推理测试题库_shl归纳推理测试答案
  9. 阿里代码规范检查工具的安装使用以及阿里代码格式化
  10. 使用matlab代码计算太阳高度角
  11. 欧姆龙OMRON PLC之Host Link协议(一)
  12. 有多少旅游企业入驻了抖音平台?有多少抖音用户喜欢看旅游视频?
  13. java中instant_Instant
  14. OpenCV_11高反差保留
  15. pandas practice
  16. 整点报时程序,实用性强,适用WIN7及以上系统
  17. 详写VMware下安装windows7优化
  18. Java 第四周学习周报
  19. 鲜为人知的mysql导入数据
  20. STM32工作笔记007---认识OLED屏和LCD屏的区别

热门文章

  1. 【5G】UE开关移动数据信令分析
  2. at91rm9200 rtl8201 网络不通
  3. 算法 - 数学 - 组合数 - 隔板法求组合数
  4. Java笔记-09 容器 Collection
  5. 华为手机助手安卓版_手机恢复助手下载-手机恢复助手安卓版
  6. java年轻代minor gc_jvm之年轻代(新生代)、老年代、永久代以及GC原理详解、GC优化...
  7. “2021智能经济高峰论坛”举行,区块链作为数字化底座之一助力百度智能云转型升级...
  8. a survey of transformer 学习笔记
  9. LoRa节点开发:6、代码详解修改发射和接收信道(频率)
  10. python线性回归 多因子模型选股思路