精华内容
下载资源
问答
  • python pywin32

    2018-09-23 12:16:58
    资源包含python 2.7和3.6 , 支持32位和64位: pywin32-220.win32-py2.7 pywin32-220.win32-py3.6 pywin32-220.win-amd64-py2.7 pywin32-220.win-amd64-py3.6
  • python pywin32学习笔记

    2020-12-22 04:54:19
    参考博客链接参考博客链接pyhandle=win32gui.FindWindow(classname,text) pyhandle windows窗体句柄,int 类型 className 窗体类名 text 窗体标题win32gui.SetForegroundWindow(pyhandle) win32gui.ShowWindow...

    参考博客链接

    参考博客链接

    pyhandle=win32gui.FindWindow(classname,text) pyhandle windows窗体句柄,int 类型  className 窗体类名  text 窗体标题

    win32gui.SetForegroundWindow(pyhandle) win32gui.ShowWindow(pyhandle, win32con.SW_MAXIMIZE) 窗体置顶  窗体最大化

    handle=win32gui.FindWindowEx(pyhandle,None,'Edit',None)

    win32gui.SendMessage(handle, win32con.WM_GETTEXTLENGTH) #向句柄为handle的窗体发送消息得到文本内容大小,阻塞式

    buffer = win32gui.PyMakeBuffer(len) 得到长度为len的缓冲区类型

    win32gui.SendMessage(edit_handle, win32con.WM_GETTEXT, len, buffer) # 读取文本

    address, length = win32gui.PyGetBufferAddressAndLen(buffer)

    text = win32gui.PyGetString(address, length)

    left,top,right,bottom=win32gui.GetClientRect(pyhandle)

    win32api.keybd_event(key, 0, 0, 0)

    win32api.SetCursorPos([width, height])

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

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

    hwndChildList = [] win32gui.EnumChildWindows(parent, lambda hwnd, param: param.append(hwnd), hwndChildList)

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

    win32gui.SendMessage(handle,win32con.WM_SETTEXT,0,text)

    win32gui.GetDlgItemText(pyhandle,dlgItemId)

    来源:博客园

    作者:零度热冰

    链接:https://www.cnblogs.com/lingdurebing/p/11602461.html

    展开全文
  • Python pywin32 学习笔记(一)

    万次阅读 多人点赞 2019-03-01 21:48:06
    停更一年多了,最近对PY产生了兴趣,应为想解放双手,又不想用按键精灵之类的软件,于是乎就百度到了这个东东“pywin32” 打开了新世界的大门,So,就在这记录学习笔记吧。 言归正传 准备部分1 pip install pywin32...

    不确定会坚持多久

    能记多少就记多少吧
    2019年3月1日21:02:26
    停更一年多了,最近对PY产生了兴趣,应为想解放双手,又不想用按键精灵之类的软件,于是乎就百度到了这个东东“pywin32
    打开了新世界的大门,So,就在这记录学习笔记吧。
    言归正传

    • 准备部分1
      pip install pywin32

    • 准备部分2
      工欲善其事必先利其器,先装个Spy++,百度一大把,就不放链接了,具体使用方法参考这里(一段简短的介绍)不过也够用了。

    代码部分

    首先

    import win32gui
    import win32con
    win = win32gui.FindWindow('Notepad','新建文本文档.txt - 记事本')
    tid = win32gui.FindWindowEx(win,None,'Edit',None)
    win32gui.SendMessage(tid, win32con.WM_SETTEXT, None, '你好hello word!')
    win32gui.PostMessage(tid,win32con.WM_KEYDOWN,win32con.VK_RETURN,0)
    print("%x" % tid)
    print("%x" % win2)
    

    一句一句解释:

    win = win32gui.FindWindow('Notepad','新建文本文档.txt - 记事本')
    

    这里搬运一下大佬博客的解释,

    FindWindow(lpClassName=None, lpWindowName=None)
    描述:自顶层窗口(也就是桌面)开始搜索条件匹配的窗体,并返回这个窗体的句柄。
    不搜索子窗口、不区分大小写。找不到就返回0 参数:
    lpClassName:字符型,是窗体的类名,这个可以在Spy++里找到。
    lpWindowName:字符型,是窗口名,也就是标题栏上你能看见的那个标题。 说明:这个函数我们仅能用来找主窗口。
    FindWindowEx(hwndParent=0, hwndChildAfter=0, lpszClass=None, lpszWindow=None)
    描述:搜索类名和窗体名匹配的窗体,并返回这个窗体的句柄。不区分大小写,找不到就返回0。 参数:
    hwndParent:若不为0,则搜索句柄为hwndParent窗体的子窗体。
    hwndChildAfter:若不为0,则按照z-index的顺序从hwndChildAfter向后开始搜索子窗体,否则从第一个子窗体开始搜索。
    lpClassName:字符型,是窗体的类名,这个可以在Spy++里找到。
    lpWindowName:字符型,是窗口名,也就是标题栏上你能看见的那个标题。 说明:找到了主窗口以后就靠它来定位子窗体啦。

    作者:橘子一方
    来源:CSDN
    原文:https://blog.csdn.net/seele52/article/details/17504925
    版权声明:本文为博主原创文章,转载请附上博文链接!

    这里我们在桌面新建了一个记事本,
    新建文本文档
    打开后 标题栏上显示是这样的
    标题栏
    当然直接 用Spy++就可以查询到这个窗口的句柄之类的信息
    第一个参数lpClassName类名就是Spy++查询得到的
    1
    第二个参数lpWindowName就是标题栏显示的名字 “新建文本文档.txt - 记事本

    tid = win32gui.FindWindowEx(win,None,'Edit',None)
    

    然后获取到这个这个窗口的子窗口类名叫“Edit”(同样可以Spy++查到)的编辑区域

    win32gui.SendMessage(tid, win32con.WM_SETTEXT, None, '你好hello word!')
    

    调用SendMessage方法往里面写入一段话

    win32gui.PostMessage(tid,win32con.WM_KEYDOWN,win32con.VK_RETURN,0)
    

    插入一个回车符

    print("%x" % tid)
    print("%x" % win2)
    

    顺便打印出来这个句柄的ID和在Spy++中查到的验证一下

    另外,python中找回来的句柄都是十进制整型,Spy++里显示的都是十六进制整型,这个要注意下,调试的时候用十六进制
    %x 输出句柄,如下:
    2
    notepad
    edit
    记事本显示的结果如下:
    在这里插入图片描述

    展开全文
  • 最新Python 3.7 pywin32 224

    2018-12-19 21:35:11
    最新Python 3.7版本 pywin32模块 标号224,帮助类文档。
  • Python pywin32 整理 && 阴阳师自动化

    千次阅读 2019-05-19 13:48:04
    Python pywin32 整理欢迎使用Markdown编辑器前言环境配置pywin32的常用功能如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一...

    前言

    本人是最近再一次入坑阴阳师,起初只是想进游戏看看变化并不打算玩,毕竟想想当年肝的日子真的是让人望而却步。不过正巧在工作上学习了Python,就突发奇想如果能用脚本来刷岂不美滋滋?
    事实证明,有了脚本解放双手不要太爽~

    脚本是通过pywin32实现的,通过pywin32来对阴阳师官方PC客户端进行一些简单操作是没有风险的,几个月的实践也证明了这一点
    在这里就把自己的一些整理分享给大家

    如有大佬有更好的方法,欢迎指教

    利用pywin32封装的一些常用功能(干货)

    使用这三个模块 win32api, win32con, win32gui 以及from ctypes import windll

    import win32api
    import win32con
    import win32gui
    from ctypes import windll
    from time import sleep
    

    下面就贴上一些我常用的功能
    注:贴上的都是简单封装的函数作为示例,可以直接拿去用,也可以自己重新优化,主要是整理在一次供参考,给出一些思路。

    1. 获取当前坐标

       def get_point():
           point = win32api.GetCursorPos()
           return point
    

    2. 移动鼠标至指定坐标位

    	def mouse_move(x, y):
    	    windll.user32.SetCursorPos(x, y)
    

    3. 鼠标左键单击

    这里需要注意的是,下面最后两行是鼠标的按下和弹起,需要点击某个坐标的话可以配合用2中的移动鼠标来实现点击

        def mouse_click(self, x=None, y=None):
            if not x is None and not y is None:
                self.mouse_move(x, y)
                sleep(0.05)
            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    

    4. 获取所有的窗口句柄

        def get_window_handlers():
            handlers = []
            win32gui.EnumWindows(lambda handler, param: param.append(handler), handlers)
            return handlers
    

    5. 获取指定窗口的大小

    入参是指定窗口句柄

        def get_window_size(handler):
            location_size = win32gui.GetWindowRect(handler)
            return location_size
    

    6. 设置指定窗口的大小

    第一个参数是指定窗口句柄, 后四个是坐标位置
    分别是起点x,起点y,终点x,终点y
    例如0,0,800,600就是在屏幕左上角开始设置宽800,高600的窗口

        def set_window(handler, start_x, start_y, size_x, size_y):
            win32gui.SetWindowPos(handler, win32con.HWND_TOPMOST, start_x, start_y, size_x, size_y, win32con.SWP_SHOWWINDOW)
    

    7. 根据应用窗口名找到窗口控件编号(单个)

    注:用win32gui的FindWindow方法查找有一个缺点,就是当有重名的窗口时只会找到一个

        def find_window_by_title(title):
            window_found = win32gui.FindWindow(None, title)
            return window_found
    

    8. 根据应用窗口名找到窗口控件编号(多个)

    由于win32gui的FindWindow方法的缺点,自己封装一个查找指定名称窗口们的方法

        def find_windows_by_title(self, title):
            windows = []
            handlers = self.get_window_handlers()
            for handler in handlers:
                if win32gui.GetWindowText(handler) == title:
                    windows.append(handler)
            return windows
    

    9. 获取所有窗口的标题名

    这个方法我用于确认是否成功双开阴阳师
    入参是所有的handler,可以结合第4点来实现

        def get_window_title_all(handlers):
            titles = []
            for handler in handlers:
                title = win32gui.GetWindowText(handler)
                titles.append(title)
            return titles
    

    关于阴阳师自动化的一些思路

    环境配置

    1. Python 3.7
    2. 安装pywin32包 - pip install pywin32 ,其余使用到的模块都自带
    3. 阴阳师客户端:官方PC客户端,或者安卓模拟器上装阴阳师均可

    1.自动启动阴阳师

    Windows下可以利用dos命令行启动游戏

    start "随便设个名字" "\\阴阳师安装的路径\\Onmyoji\\Launch.exe"
    

    利用subprocess.Popen执行以上命令,注意要设置shell=True,在windows上shell即dos

    cmd = 'start "随便设个名字" "\\阴阳师安装的路径\\Onmyoji\\Launch.exe"'
    subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
    

    注:反复同时执行两遍上述命令有概率做到双开,可以写个循环实现,这就是为什么我封装了上面pywin32第9个方法的原因。

    2.设置窗口位置及大小

    1. 根据窗口名找到窗口,得到窗口句柄
      阴阳师的官方应用窗口名为”阴阳师-网易游戏“, 如果是用模拟器就是模拟器窗口的名字
    2. 设置窗口位置及大小

    3.登陆账号

    1. 简单的方式
      客户端上保存了账号信息,所以简单的登陆方法就是获取每个登陆所需点击的按钮的坐标,然后模拟按照顺序点击,注意要调节好速度(sleep控制)
      对于账号固定的情况,这种方式完全够用了
      假如是双开俩号,客户端保存了两个账号信息,其中一个客户端登陆时执行切换账号操作就行了。如果是更多的账号,只要理清了登陆逻辑一样可以实现。
    2. 精准且灵活的方式
      暂未研究,待更新…

    4.执行程序

    登陆完成之后就是开始各种刷刷刷了
    对于实现刷各种副本,大部分的副本活动只要摸清了操作流程,转化成点点点,加个循环就能实现了。
    对于一项副本可以分为几个步骤:

    1. 从主界面跳转到相应副本的位置
    2. 启动进入副本
    3. 循环执行
    4. 循环结束后跳转回主界面

    对于某些动态变化的事,比如刷狗粮就需要花更多的心思了,可以利用截图+图像识别去匹配移动的怪物,获取坐标后点击。

    之后有空会更新一下这种实现。

    windows下开机启动脚本

    弃坑了弃坑了
    补上一段,批处理开机启动方法
    win10下文件夹,C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
    脚本放在这个文件夹里开机会自动运行, 非win10的路径会不一样,网上搜一下就有。

    因为逐渐的开始弃坑,后来启动频率是每天启动一次, 用一个文本保存上一次执行的日期来控制

    下面第一行是关闭显示,开启延迟变量
    for循环读取上次执行的日期信息
    和当前日期比对,不同就执行脚本
    每次比对完都更新当前日期到文本中

    如果需要每天定不同时段跑的,也可以根据文本记录时间的方式实现

    @echo off & setlocal enabledelayedexpansion
    for /f "delims=" %%a in (date.txt) do (
          set last_date=%%a
          echo last date: !last_date!
        )
    echo current date: %date%
    set/p=%date%<nul > date.txt
    if "%date%" EQU "!last_date!" (echo Skip auto_yys.bat) else (echo Start auto_yys.bat)
    if "%date%" NEQ "!last_date!" (start python "F:\study\bandwagon\repository\yys\auto_startup.py")
    
    展开全文
  • Python Pywin32库安装

    2021-08-05 19:09:24
    Python 3 环境安装直接 pip 安装 pip install --user pywin32 Python 2 官方已经不再更新,需要自己下载 whl 手动安装。下载路径 https://pypi.org/simple/pywin32/ ...python pywin32_postinstall.py -i.

    Python 3 环境安装直接 pip 安装

    pip install --user pywin32

    Python 2 官方已经不再更新,需要自己下载 whl 手动安装。下载路径

    https://pypi.org/simple/pywin32/

    选择 pywin32-228-cp27-cp27m-win_amd64.whl 下载后安装

    pip install pywin32-228-cp27-cp27m-win_amd64.whl
    python pywin32_postinstall.py -install

    pywin32_postinstall.py 文件一般在 pip 文件同个目录。

    展开全文
  • PyWin32官方手册,适配Python3.7最新版,有需要的伙伴可以下载查阅
  • PyWin32帮助文档,完整全面,来自官方,用于Python gui开发,常用的三个模块分别是win32gui、win32api、win32con。
  • 利用抓取windows窗口图像,并对图像进行基本识别操作后对模拟器窗口发送虚拟操作指令,由于是在模拟器之外的,因此原理上不会有风险
  • ") engine.say('My current speaking rate is ' + str(rate)) engine.runAndWait() engine.stop() pywin32 如果安装conda则已经带有 pip install pywin32 是一般的机器人声音,支持中英 import win32...
  • 首先呢 python 在WINDOWS下开发界面调用API 的话,自己写代码难度和工作量很大,必须要下载类库例如pywin32一类的 如果直接用命令pip install pywin32 你会发现连续的不成功,错误等等一系列的问题。这里我总结下...
  • 今天安装PsychoPy库得时候,提示pywin32版本太低,要求大于等于223版本,然后直接在pycharm升级pywin32到最新版本,之后原来的程序加载不了pywin32相关的库了,报错 ”importwin32api#noqa:E402“ 如下图: ...
  • 由于官网链接下载速度极慢,故放出此文件提供给大家下载 安装方法:根据txt中的百度云url下载文件后,直接在amd上输入whl_pywin32_py36_amd64.whl就好了
  • Pywin32Python3.6 x32/x64

    2018-01-21 14:27:11
    Python win32 x32 x64 离线安装Pyinstaller 第一个需要的问题件
  • 用 spy++去确认找到了文本框的句柄了。用函数 win32gui.SendMessage 获取不了文本框的文本内容,用 str 类型的参数接收获取的内容... 以下是代码:from win32gui import *from win32api import *from win32process i...
  • Python pywin32获取当前所有打开窗口titleimport ctypesEnumWindows = ctypes.windll.user32.EnumWindowsEnumWindowsProc = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.POINTER(ctypes.c_int), ctypes.POINTER...
  • python pywin32模块操作office,基本类.

    千次阅读 2018-10-28 16:04:20
    word_base.py     import os from win32com.client import DispatchEx import config class WordWrap: def __init__(self, templatefile=None): self.filename = templatefile self.word...
  • 1.判断窗口是否置顶 import win32gui, win32con # 这个是qq登录界面的窗口句柄 hwnd = win32gui.FindWindow(None, "QQ") ...win32gui.SetWindowPos(hwnd, win32con.HWND_NOTOPMOST, 0,0,800,600, win32con.S.
  • pywin32 for python 2.7 32位和64位

    千次下载 热门讨论 2016-01-06 13:52:39
    windows 运行python 必备, 需要根据自己的操作系统选择32位或64位
  • pywin32官方api文档

    2018-09-07 17:49:28
    官方的pywin32文档,方便使用python开发windows应用使用。
  • 本资源一个包含两个安装包,一个pywin32包,一个pip安装包,都是在window下面使用,这两个包用于打包python程序为exe执行文件,具体的使用方法见我的博客
  • 利用Pythonpywin32写的一个小程序 点击下方蓝色字体获取。 文件以及源代码提取 提取码: a76u 获取前,请下载Python,以及库。 Python下载链接如下: Python3.8.2下载链接 下载pywin32: copy以下指令,然后打一个...
  • Python版本,3.7因为某个脚本需要用到win32con 和win32api模块,run -- cmd ,使用easy_install pywin32 命令安装,提示错误,搜不到,网上搜了下教程,分别用pip3 install pypiwin32 和python -m pip install ...
  • 感谢Python脚本将不会在任务调度程序中运行“无论用户是否登录都要运行” - 问答 - Python中文网
  • pywin32-224.win32-py3.7.exe

    2019-04-01 22:37:39
    pywin32是对应python3.7这个版本。因为python scrapy爬虫代码,报错ModuleNotFoundError: No module named 'win32api',需要下载与所安装的python版本号对应的pywin32
  • Pywin32 中文操作文档 内包含win32api win32api win32gui 模块函数 常量解释
  • 复制代码 代码如下:#-*-coding:utf-8-*-import osimport timeimport win32guiimport win32apiimport win32confrom PIL import ImageGrab #os.startfile(“D:\\artcut6\\Prog\\Artcut6.exe”)#time.sleep(1) ...
  • 读取Excel文件需要导入相关函数fromopenpyxlimportload_workbook#默认可读写,若有需要可以指定write_only和read_only为Truewb=load_workbook('pythontab.xlsx')默认打开的文件为可读写,若有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,260
精华内容 5,704
关键字:

pythonpywin32

python 订阅