python实现模拟按键,自动翻页看u17漫画


Posted in Python onMarch 17, 2015

python
适用于windows平台
使用 win32gui,win32api,win32con 包

simu_read.py

#-*- coding=utf-8 -*-

'''

模拟按键翻页

Usage:python simu_read.py 10 1.5

10表示翻10页,1.5表示在一页中按pgdn的时间间隔为1.5s

一页pgdn 3 次,之后按→翻到下一页

把浏览器打开到u17要看的漫画中,之后启动该程序,再切回u17

便可以自动翻页看漫画了。

仅供娱乐,了解python模拟按键

'''

import win32gui,win32api,win32con

from ctypes import *

import time

import threading

import sys

''' # mouse click is not used here ,-> can replace it

def get_cursor_pos():

    x,y = win32gui.GetCursorPos()

    return (x,y)

def mouse_move(x,y):

    windll.user32.SetCursorPos(x, y)

def mouse_click(x=None,y=None):

    print 'mouse_click'

    if not x is None and not y is None:

        mouse_move(x,y)

        time.sleep(0.05)

        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)

        time.sleep(0.05)

        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)

def test_pos():

    for i in range(0,10):

        time.sleep(0.5)

        print get_cursor_pos()

'''

def key_up(key_num):

    win32api.keybd_event(key_num,0,0,0) 

    win32api.keybd_event(key_num,0,win32con.KEYEVENTF_KEYUP,0)

def init_dict():

    dict1 = {"PageDown":34,'RightArrow':39}

    return dict1

if __name__ == '__main__':

    if len(sys.argv) != 3:

        print 'Usage:python simu_read.py <pagenum> <interval>'

        sys.exit(-1)

    try:

        pagenum = int(sys.argv[1])

        interval = float(sys.argv[2])

    except ValueError:

        print 'Usage:python simu_read.py <pagenum> <interval>'

        print '<pagenum> should be the type of int'

        print '<interval> should be the type of float'

        sys.exit(-1)

    if pagenum < 0 or pagenum > 10000:

        print 'pagenum should be in the range [1,10000]'

        sys.exit(-1)

    if interval < 0.1 or interval > 60:

        print 'interval should be in the range [0.1,60]'

        sys.exit(-1)

    key_dict = init_dict()

    stsec = 2

    print 'start in '+str(stsec)+' seconds...'

    time.sleep(stsec)

    for i in range(0,pagenum):

        for j in range(0,3):#generally,the height of one page is not more than 3 screensize

            print 'PageDown'

            key_up(key_dict['PageDown'])

            time.sleep(interval)

        key_up(key_dict['RightArrow'])

        print 'Next page'

        time.sleep(interval+0.2)#delay

  

以上就是本文分享的全部内容了,希望大家能够喜欢。

Python 相关文章推荐
Python跨文件全局变量的实现方法示例
Dec 10 Python
matplotlib绘制动画代码示例
Jan 02 Python
Django中url的反向查询的方法
Mar 14 Python
Python获取指定字符前面的所有字符方法
May 02 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
详解python做UI界面的方法
Feb 27 Python
python使用wxpy实现微信消息防撤回脚本
Apr 29 Python
利用python和百度地图API实现数据地图标注的方法
May 13 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
jupyter notebook指定启动目录的方法
Mar 02 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 Python
python通过pil为png图片填充上背景颜色的方法
Mar 17 #Python
python按照多个字符对字符串进行分割的方法
Mar 17 #Python
python通过floor函数舍弃小数位的方法
Mar 17 #Python
python常规方法实现数组的全排列
Mar 17 #Python
python标准算法实现数组全排列的方法
Mar 17 #Python
Python网页解析利器BeautifulSoup安装使用介绍
Mar 17 #Python
python回溯法实现数组全排列输出实例分析
Mar 17 #Python
You might like
PHP连接SQLServer2005 的问题解决方法
2010/07/19 PHP
php按单词截取字符串的方法
2015/04/07 PHP
CodeIgniter连贯操作的底层原理分析
2016/05/17 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
js常用数组操作方法简明总结
2014/06/20 Javascript
JQuery 在线引用及测试引用是否成功
2014/06/24 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
2014/11/02 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
2015/10/12 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
js省市区级联查询(插件版&amp;无插件版)
2017/03/21 Javascript
layui分页效果实现代码
2017/05/19 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
[05:10]2014DOTA2国际邀请赛 通往胜利之匙赛场探秘之旅
2014/07/18 DOTA
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
Python根据成绩分析系统浅析
2019/02/11 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
python 下划线的不同用法
2020/10/24 Python
布局和排版教程 纯css3实现图片三角形排列
2014/10/17 HTML / CSS
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
小学生手册家长评语
2014/04/16 职场文书
2014年教育工作总结
2014/11/26 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers
Jmerte 分布式压测及分布式压测配置
2022/04/30 Java/Android
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers