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 strip lstrip rstrip使用方法
Sep 06 Python
python网络编程学习笔记(一)
Jun 09 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
Python父目录、子目录的相互调用方法
Feb 16 Python
python实现抽奖小程序
Apr 15 Python
解决python flask中config配置管理的问题
Jul 26 Python
Python Pillow.Image 图像保存和参数选择方式
Jan 09 Python
Python 定义只读属性的实现方式
Mar 05 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
Python requests HTTP验证登录实现流程
Nov 05 Python
python基于tkinter实现gif录屏功能
May 19 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 模拟$_PUT实现代码
2010/03/15 PHP
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
jQuery将所有被选中的checkbox某个属性值连接成字符串的方法
2015/01/24 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
2017/08/03 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
[47:04]LGD vs infamous Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
列举Python中吸引人的一些特性
2015/04/09 Python
解决Python requests 报错方法集锦
2017/03/19 Python
Python for i in range ()用法详解
2020/09/18 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
Python super()函数使用及多重继承
2020/05/06 Python
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
allbeauty美国:英国在线美容店
2019/03/11 全球购物
监理员的岗位职责
2013/11/13 职场文书
网页美工求职信范文
2014/04/17 职场文书
离婚协议书标准格式
2014/10/04 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL