精华内容
下载资源
问答
  • win32
    千次阅读
    2021-02-27 21:49:27

    win32gui, win32con, win32api安装失败,可以安装pypiwin32,因为pypiwin32包含了n32gui, win32con, win32api三个模块。

    pip install pypiwin32

     

    更多相关内容
  • Pywin32是一个Python库,为python提供访问...1.通过类名和标题查找窗口句柄,并获得窗口位置和大小import win32guiimport win32apiclassname = "MozillaWindowClass"titlename = "百度一下,你就知道 - Mozilla Fire...

    Pywin32是一个Python库,为python提供访问Windows API的扩展,提供了齐全的windows常量、接口、线程以及COM机制等等。

    1.通过类名和标题查找窗口句柄,并获得窗口位置和大小

    import win32gui

    import win32api

    classname = "MozillaWindowClass"

    titlename = "百度一下,你就知道 - Mozilla Firefox"

    #获取句柄

    hwnd = win32gui.FindWindow(classname, titlename)

    #获取窗口左上角和右下角坐标

    left, top, right, bottom = win32gui.GetWindowRect(hwnd)

    2.通过父句柄获取子句柄

    def get_child_windows(parent):

    '''

    获得parent的所有子窗口句柄

    返回子窗口句柄列表

    '''

    if not parent:

    return

    hwndChildList = []

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

    return hwndChildList

    #获取某个句柄的类名和标题

    title = win32gui.GetWindowText(hwnd)

    clsname = win32gui.GetClassName(hwnd)

    #获取父句柄hwnd类名为clsname的子句柄

    hwnd1= win32gui.FindWindowEx(hwnd, None, clsname, None)

    3.鼠标定位与点击

    #鼠标定位到(30,50)

    win32api.SetCursorPos([30,150])

    #执行左单键击,若需要双击则延时几毫秒再点击一次即可

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

    #右键单击

    win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)

    4.发送回车键

    win32api.keybd_event(13,0,0,0)

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

    5.关闭窗口

    win32gui.PostMessage(win32lib.findWindow(classname, titlename), win32con.WM_CLOSE, 0, 0)

    一, 首先import win32gui, win32con

    二, 使用win32gui.FindWindow找到目标程序:

    win = win32gui.FindWindow(None, 'User Login')

    三, 使用win32gui.FindWindowEx找到目标文本框:

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

    四, 使用win32gui.SendMessage发送文本到目标文本框:

    win32gui.SendMessage(tid, win32con.WM_SETTEXT, None, 'hello')

    当然了,可以继续找到下一个文本框:

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

    只是还没找到给字符串加回车的功能,在记事本里可以实现,不知道为什么在这里不行。如果各位大侠有知道的希望不吝赐教。

    目前先研究到这里。以防忘记所以记在这里,以备以后使用。

    更新:已经找到发送回车的方法:

    win32gui.SendMessage(tid, win32con.WM_SETTEXT, None, ‘hello')

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

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

    实例:

    import win32gui

    import win32con

    import win32api

    # 从顶层窗口向下搜索主窗口,无法搜索子窗口

    # FindWindow(lpClassName=None, lpWindowName=None) 窗口类名 窗口标题名

    handle = win32gui.FindWindow("Notepad", None)

    # 获取窗口位置

    left, top, right, bottom = win32gui.GetWindowRect(handle)

    #获取某个句柄的类名和标题

    title = win32gui.GetWindowText(handle)

    clsname = win32gui.GetClassName(handle)

    # 打印句柄

    # 十进制

    print(handle)

    # 十六进制

    print("%x" %(handle) )

    # 搜索子窗口

    # 枚举子窗口

    hwndChildList = []

    win32gui.EnumChildWindows(handle, lambda hwnd, param: param.append(hwnd), hwndChildList)

    # FindWindowEx(hwndParent=0, hwndChildAfter=0, lpszClass=None, lpszWindow=None) 父窗口句柄 若不为0,则按照z-index的顺序从hwndChildAfter向后开始搜索子窗体,否则从第一个子窗体开始搜索。 子窗口类名 子窗口标题

    subHandle = win32gui.FindWindowEx(handle, 0, "EDIT", None)

    # 获得窗口的菜单句柄

    menuHandle = win32gui.GetMenu(subHandle)

    # 获得子菜单或下拉菜单句柄

    # 参数:菜单句柄 子菜单索引号

    subMenuHandle = win32gui.GetSubMenu(menuHandle, 0)

    # 获得菜单项中的的标志符,注意,分隔符是被编入索引的

    # 参数:子菜单句柄 项目索引号

    menuItemHandle = win32gui.GetMenuItemID(subMenuHandle, 0)

    # 发送消息,加入消息队列,无返回

    # 参数:句柄 消息类型 WParam IParam

    win32gui.postMessage(subHandle, win32con.WM_COMMAND, menuItemHandle, 0)

    # wParam的定义是32位整型,high word就是他的31至16位,low word是它的15至0位。

    # 当参数超过两个,wParam和lParam不够用时,可以将wParam就给拆成两个int16来使用。

    # 这种时候在python里记得用把HIWORD的常数向左移16位,再加LOWORD,即wParam = HIWORD<<16+LOWORD。

    # 下选框内容更改

    # 参数:下选框句柄; 消息内容; 参数下选框的哪一个item,以0起始的待选选项的索引;如果该值为-1,将从组合框列表中删除当前选项,并使当前选项为空; 参数

    # CB_Handle为下选框句柄,PCB_handle下选框父窗口句柄

    if win32api.SendMessage(CB_handle, win32con.CB_SETCURSEL, 1, 0) == 1:

    # 下选框的父窗口命令

    # 参数:父窗口句柄; 命令; 参数:WParam:高位表示类型,低位表示内容;参数IParam,下选框句柄

    # CBN_SELENDOK当用户选择了有效的列表项时发送,提示父窗体处理用户的选择。 LOWORD为组合框的ID. HIWORD为CBN_SELENDOK的值。

    win32api.SendMessage(PCB_handle, win32con.WM_COMMAND, 0x90000, CB_handle)

    # CBN_SELCHANGE当用户更改了列表项的选择时发送,不论用户是通过鼠标选择或是通过方向键选择都会发送此通知。LOWORD为组合框的ID. HIWORD为CBN_SELCHANGE的值。

    win32api.SendMessage(PCB_handle, win32con.WM_COMMAND, 0x10000, CB_handle)

    # 设置文本框内容,等窗口处理完毕后返回true。中文需编码成gbk

    # 参数:句柄;消息类型;参数WParam,无需使用; 参数IParam,要设置的内容,字符串

    win32api.SendMessage(handle, win32con.WM_SETTEXT, 0, os.path.abspath(fgFilePath).encode('gbk'))

    # 控件点击确定,处理消息后返回0

    # 参数:窗口句柄; 消息类型; 参数WParam HIWORD为0(未使用),LOWORD为控件的ID; 参数IParam 0(未使用),确定控件的句柄

    win32api.SendMessage(Mhandle, win32con.WM_COMMAND, 1, confirmBTN_handle)

    # 获取窗口文本不含截尾空字符的长度

    # 参数:窗口句柄; 消息类型; 参数WParam; 参数IParam

    bufSize = win32api.SendMessage(subHandle, win32con.WM_GETTEXTLENGTH, 0, 0) +1

    # 利用api生成Buffer

    strBuf = win32gui.PyMakeBuffer(bufSize)

    print(strBuf)

    # 发送消息获取文本内容

    # 参数:窗口句柄; 消息类型;文本大小; 存储位置

    length = win32gui.SendMessage(subHandle, win32con.WM_GETTEXT, bufSize, strBuf)

    # 反向内容,转为字符串

    # text = str(strBuf[:-1])

    address, length = win32gui.PyGetBufferAddressAndLen(strBuf)

    text = win32gui.PyGetString(address, length)

    # print('text: ', text)

    # 鼠标单击事件

    #鼠标定位到(30,50)

    win32api.SetCursorPos([30,150])

    #执行左单键击,若需要双击则延时几毫秒再点击一次即可

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

    #右键单击

    win32api.mouse_event(win32con.MOUSEEVENTF_RIGHTUP | win32con.MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)

    def click1(x,y): #第一种

    win32api.SetCursorPos((x,y))

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

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

    def click2(x,y): #第二种

    ctypes.windll.user32.SetCursorPos(x,y)

    ctypes.windll.user32.mouse_event(2,0,0,0,0)

    ctypes.windll.user32.mouse_event(4,0,0,0,0)

    def click_it(pos): #第三种

    handle= win32gui.WindowFromPoint(pos)

    client_pos =win32gui.ScreenToClient(handle,pos)

    tmp=win32api.MAKELONG(client_pos[0],client_pos[1])

    win32gui.SendMessage(handle, win32con.WM_ACTIVATE,win32con.WA_ACTIVE,0)

    win32gui.SendMessage(handle, win32con.WM_LBUTTONDOWN,win32con.MK_LBUTTON,tmp)

    win32gui.SendMessage(handle, win32con.WM_LBUTTONUP,win32con.MK_LBUTTON,tmp)

    # 发送回车

    win32api.keybd_event(13,0,0,0)

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

    # 关闭窗口

    win32gui.PostMessage(win32lib.findWindow(classname, titlename), win32con.WM_CLOSE, 0, 0)

    # 检查窗口是否最小化,如果是最大化

    if(win32gui.IsIconic(hwnd)):

    # win32gui.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)

    win32gui.ShowWindow(hwnd, 8)

    sleep(0.5)

    # SW_HIDE:隐藏窗口并激活其他窗口。nCmdShow=0。

    # SW_MAXIMIZE:最大化指定的窗口。nCmdShow=3。

    # SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。nCmdShow=6。

    # SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。nCmdShow=9。

    # SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。nCmdShow=5。

    # SW_SHOWDEFAULT:依据在STARTUPINFO结构中指定的SW_FLAG标志设定显示状态,STARTUPINFO 结构是由启动应用程序的程序传递给CreateProcess函数的。nCmdShow=10。

    # SW_SHOWMAXIMIZED:激活窗口并将其最大化。nCmdShow=3。

    # SW_SHOWMINIMIZED:激活窗口并将其最小化。nCmdShow=2。

    # SW_SHOWMINNOACTIVE:窗口最小化,激活窗口仍然维持激活状态。nCmdShow=7。

    # SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。nCmdShow=8。

    # SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。nCmdShow=4。

    # SW_SHOWNORMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。nCmdShow=1。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

    100

    101

    102

    103

    104

    105

    106

    107

    108

    109

    110

    111

    112

    113

    114

    115

    116

    117

    118

    119

    120

    121

    122

    123

    124

    125

    126

    127

    128

    129

    130

    131

    132

    133

    134

    135

    136

    137

    138

    139

    # win32虽然也可控制键盘,但不如使用PyUserInput的方便。需要注意在windows和mac下接口参数可能有所不同。

    from pymouse import PyMouse

    from pykeyboard import PyKeyboard

    m = PyMouse()

    k = PyKeyboard()

    x_dim, y_dim = m.screen_size()

    # 鼠标点击

    m.click(x_dim/2, y_dim/2, 1)

    # 键盘输入

    k.type_string('Hello, World!')

    # 按住一个键

    k.press_key('H')

    # 松开一个键

    k.release_key('H')

    # 按住并松开,tap一个键

    k.tap_key('e')

    # tap支持重复的间歇点击键

    k.tap_key('l',n=2,interval=5)

    # 发送判断文字

    k.type_string('123456')

    #创建组合键

    k.press_key(k.alt_key)

    k.tap_key(k.tab_key)

    k.release_key(k.alt_key)

    # 特殊功能键

    k.tap_key(k.function_keys[5]) # Tap F5

    k.tap_key(k.numpad_keys['Home']) # Tap 'Home' on the numpad

    k.tap_key(k.numpad_keys[5], n=3) # Tap 5 on the numpad, thrice

    # Mac系统

    k.press_keys(['Command','shift','3'])

    # Windows系统

    k.press_keys([k.windows_l_key,'d'])

    其中的PyMouseEvent和PyKeyboardEvent还可用于监听鼠标和键盘事件的输入

    展开全文
  • pywin32、win32api、win32gui、win32com、win32con 名称非常类似,特别容易混淆,今天就用600字给大家区分一下 文章目录pywin32win32guiwin32conwin32apiwin32com记录时间 pywin32 pywin32 主要的作用是供 Python...

    pywin32、win32api、win32gui、win32com、win32con 名称非常类似,特别容易混淆,今天就用600字给大家区分一下

    pywin32

    pywin32 主要的作用是供 Python开发者快速调用 Windows API的一个模块库。该模块的另一个作用是是通过Python进行COM编程。

    落地场景:
    如果你想在Windows操作系统用Python实现自动化工作,pywin32模块经常用到。

    win32gui

    win32gui 在安装 pywin32 之后就可以使用,这个模块定义了 Windows 下关于图形操作的API,FindWindow和 FindWindowEx 函数都可以使用。
    该模块可以单独安装。

    win32con

    同上述模块基本一致,也是与 pywin32 配合使用的模块,这个模块内定义了Windows API内的宏。

    win32api

    win32api 也是安装 pywin32 之后就会配备的模块,Win32 API 即为Microsoft 32位平台的应用程序编程接口,接口可以在下述参考,除Python外,其它语言也可以对接。

    使用该模块会经常用到一个手册:http://www.yfvb.com/help/win32sdk/webhelplefth.htm

    win32com

    Python 操作 COM 组件的库(COM是Component Object Model (组件对象模型)的缩写)

    其实到这里你会发现 pywin32 是底座,其它的都属于搭配模块。

    • win32api:提供了常用的用户API;
    • win32gui:提供了有关用户界面图形操作的API;
    • win32con:提供了消息常量的操作API;
    • win32file:提供了文件操作的API;
    • win32com:提供COM组件操作API。

    其它的模块还有,可以自行学习即可

    在这里插入图片描述

    记录时间

    2022年度 Flag,写作的 582 / 1024 篇。
    可以关注我,点赞我、评论我、收藏我啦。

    更多精彩

    展开全文
  • WIN32 API大全中文帮助文档

    千次下载 热门讨论 2015-01-30 16:07:54
    WIN32 API函数速查手册,适合初学者使用。很方便的WIN32 API函数帮助文档,大小只有不到2MB,希望可以帮到你们。
  • python win32 简单操作方法

    千次阅读 2020-11-30 12:35:52
    后来看到python可以操作win32相关的api,恰好这一段时间正在学习python,感觉练手的时候到了~~~下载要注意Python版本及位数,否则会安装失败直接到上面的地址去找合适的版本下载安装,已包含其它的工具下载的已经是可...

    源由

    刚开始是帮朋友做一个按键精灵操作旺信的脚本,写完后各种不稳定;后来看到python可以操作win32相关的api,恰好这一段时间正在学习python,感觉练手的时候到了~~~

    下载

    要注意Python版本及位数,否则会安装失败

    直接到上面的地址去找合适的版本下载安装,已包含其它的工具

    下载的已经是可执行文件,直接执行即可

    https://sourceforge.net/projects/pywin32/

    获取句柄的方式

    VC或VS工具里面自带SPY++,可以获取句柄信息, 这个你没有,请看下条

    没错,就是按键精灵(不是做广告哈,第一次查找句柄信息的时候就是用这货),功能简单易用

    使用

    查询句柄

    # 根据类名及标题名查询句柄,

    hwnd = win32gui.FindWindow("Tfrm_YzzPlayer","叶子猪手游模拟器")

    # 查找指定句柄的子句柄,后两个参数为子类的类名与标题,如果没有或不确定,可以写None

    hwnd = win32gui.FindWindow(hwnd,None,"sub_class","sub_title")

    修改窗口大小

    # 没有直接修改窗口大小的方式,但可以曲线救国,几个参数分别表示句柄,起始点坐标,宽高度,是否重绘界面 ,如果想改变窗口大小,就必须指定起始点的坐标,没果对起始点坐标没有要求,随便写就可以;如果还想要放在原先的位置,就需要先获取之前的边框位置,再调用该方法即可

    win32gui.MoveWindow(hwnd,20,20,405,756,True)

    前台后台

    # 指定句柄设置为前台,也就是激活

    win32gui.SetForegroundWindow(hwnd)

    # 设置为后台

    win32gui.SetBkMode(hwnd, win32con.TRANSPARENT)

    按键

    # 在这里两几种方式可以选择 可以使用win32gui包和win32api的包,目前未深入了解,感觉是一样的,每一个里面还有PostMessage与SendMessage两都可选,依据其他文档的说法是SendMessage是同步的,在成功执行后才会返回,而PostMessage是异步执行的,直接返回,只是把内容加在队列里

    # 几个参数分别为: 操作的句柄 , 按键的类型(是按下或者是弹起), 键码(大部分的功能键在win32con包中都,对于常用的数字或字母,直接去查找ASII码即可,如A 65 等等),相对于句柄中的位置(在这里需要使用win32api.MAKELONG(x,y)将两个地址转换为一个长地址;

    # 在这种情况下,可以做到后台的操作

    # 需要注意的是每一个按键要有按下与弹起两个过程,比果我们要按Enter键,就需要有两句代码,第二个参数分别为 KEYDOAWN与 KEYUP ,如果是组合键,就先把组合键分别按下后再分别弹起即可

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

    # win32gui.SendMessage(tid, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)

    win32api.SendMessage(hwd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, long_position)

    win32api.PostMessage(hwd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, long_position)

    发送消息

    在这里有两种方式,一种是找到输入框的句柄,将键类型设置为SETTEXT

    另外一种方式为将需要输入的内容放到粘贴板中,直接粘贴即可

    # 方式一为网络上说明,自己在测试的时候一直不成功,因为我是操作安卓模拟器里面的软件,查找不到输入框的句柄的原因

    win32gui.SendMessage(tid, win32con.WM_SETTEXT,None,‘hello')

    # 方式二,测试通过 其实就是把内容放到剪贴板中,直接ctrl + v即可,感觉适用于找不到输入框的具体句柄,但焦点已经在输入框中的情况

    # 定义两个方法,来读写剪贴板,注意要和目标系统的编码方式相同

    def getText():

    # 读取剪切板

    w.OpenClipboard()

    d = w.GetClipboardData(win32con.CF_TEXT)

    w.CloseClipboard()

    return d

    def setText(aString):

    # 写入剪切板

    w.OpenClipboard()

    w.EmptyClipboard()

    w.SetClipboardData(win32con.CF_TEXT, aString.encode(encoding='gbk'))

    w.CloseClipboard()

    代码示例

    下面的代码功能是:从一个文本读取每一行记录,然后到安卓模拟器中的旺信中查询联系人,发送指定内容的消息。

    # coding: utf-8

    import win32gui, win32api, win32con

    import time

    import win32clipboard as w

    import logging

    def click_position(hwd, x_position, y_position, sleep):

    """

    鼠标左键点击指定坐标

    :param hwd:

    :param x_position:

    :param y_position:

    :param sleep:

    :return:

    """

    # 将两个16位的值连接成一个32位的地址坐标

    long_position = win32api.MAKELONG(x_position, y_position)

    # win32api.SendMessage(hwnd, win32con.MOUSEEVENTF_LEFTDOWN, win32con.MOUSEEVENTF_LEFTUP, long_position)

    # 点击左键

    win32api.SendMessage(hwd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, long_position)

    win32api.SendMessage(hwd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, long_position)

    time.sleep(int(sleep))

    def getText():

    # 读取剪切板

    w.OpenClipboard()

    d = w.GetClipboardData(win32con.CF_TEXT)

    w.CloseClipboard()

    return d

    def setText(aString):

    # 写入剪切板

    w.OpenClipboard()

    w.EmptyClipboard()

    w.SetClipboardData(win32con.CF_TEXT, aString.encode(encoding='gbk'))

    w.CloseClipboard()

    def input_content(hwd, content, sleep, is_enter):

    """

    从站贴板中查找输入的内容

    :param hwd:

    :param content:

    :param sleep:

    :param is_enter 是否要在最后输入enter键,内容与enter之间间隔一秒

    :return:

    """

    setText(content)

    time.sleep(0.3)

    click_keys(hwd, win32con.VK_CONTROL, 86)

    if is_enter:

    time.sleep(1)

    click_keys(hwd, win32con.VK_RETURN)

    time.sleep(sleep)

    def click_keys(hwd, *args):

    """

    定义组合按键

    :param hwd:

    :param args:

    :return:

    """

    for arg in args:

    win32api.SendMessage(hwd, win32con.WM_KEYDOWN, arg, 0)

    for arg in args:

    win32api.SendMessage(hwd, win32con.WM_KEYUP, arg, 0)

    def wangwang_operation(hwd, salesname, content1, content2):

    """

    阿里旺旺的操作

    :param hwd: 句柄

    :param salesname:

    :param content1: 发送一

    :param content2: 发送二

    :return:

    """

    # 下方联系人标签

    click_position(hwd, 200, 685, 2)

    # 新增好友按钮

    click_position(hwd, 372, 44, 3)

    # 搜索好友

    input_content(hwd, salesname, 3, False)

    # 点击搜索

    click_position(hwd, 345, 117, 5)

    # 点击发送消息

    click_position(hwd, 350, 700, 3)

    # 发送消息一

    input_content(hwd, content1, 1, False)

    click_keys(hwd, win32con.VK_CONTROL, win32con.VK_RETURN)

    time.sleep(1)

    input_content(hwd, content2, 1, False)

    click_keys(hwd, win32con.VK_CONTROL, win32con.VK_RETURN)

    time.sleep(1)

    # 返回原始状态

    click_position(hwd, 20, 45, 1)

    time.sleep(1)

    click_position(hwd, 20, 45, 1)

    def wangwang_operation_by_file(hwd, file, content1, content2):

    with open(file, 'r') as f:

    line = f.readline()

    while len(line) >= 1:

    try:

    line = line.replace('\r', '').replace('\n', '')

    print("正在处理 %s ....................................." % line)

    wangwang_operation(hwd, line, content1, content2)

    line = f.readline()

    except BaseException as e:

    print("处理 %s 时出错了............." % line)

    logging.exception(e)

    if __name__ == "__main__":

    # 查找句柄

    hwnd = win32gui.FindWindow("Tfrm_YzzPlayer", "叶子猪手游模拟器")

    if int(hwnd) <= 0:

    print("没有找到模拟器,退出进程................")

    exit(0)

    print("查询到模拟器句柄: %s " % hwnd)

    win32gui.MoveWindow(hwnd, 20, 20, 405, 756, True)

    time.sleep(2)

    # 屏幕坐标到客户端坐标

    # print(win32gui.ScreenToClient(hwnd, (1446, 722)))

    # 设置为前台

    # win32gui.SetForegroundWindow(hwnd)

    # 设置为后台

    win32gui.SetBkMode(hwnd, win32con.TRANSPARENT)

    time.sleep(2)

    # 下列的后三个参数分别表示: 文件路径 打招呼句子 广告语

    wangwang_operation_by_file(hwnd, "D:/2.txt", "你好", "测试广告语")

    以上这篇python win32 简单操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    展开全文
  • cronolog-1.6.1-win32.zip

    热门讨论 2015-07-20 15:39:31
    cronolog配合tomcat在windows下按照日期自动分割tomcat的日志
  • eclipse-jee-mars-R-win32-x86_64位官方绿色版.zip

    万次下载 热门讨论 2015-06-30 15:42:46
    eclipse-jee-mars-R-win32-x86_64.zip 截至2015.06.30 eclipse-j2ee 最新版
  • Oracle_win32_11gR2_client.

    2015-11-25 11:21:28
    Oracle_win32_11gR2_client Oracle 32位客户端 下载链接
  • sokit-1.3 win32

    热门讨论 2015-07-28 16:57:32
    sokit 1.3 win32 chs.
  • oracle_11g_R2_client win32 客户端

    千次下载 热门讨论 2015-05-29 15:42:23
    oracle_11g_R2_client win32 客户端
  • mysql-5.5.39-win32.msi

    千次下载 热门讨论 2014-08-25 11:55:52
    关于MySQL32位安装版的,有人不愿去官网下载,我下载后到这里给大家分享,利人利己
  • win32汇编实现贪吃蛇

    热门讨论 2011-12-01 23:34:46
    win32汇编实现贪吃蛇 win32汇编多文件程序设计 汇编语言实现动态链表 以对话框做窗口模板并做为主界面 开发工具 ollydbg + MASM32 + gVim + NMAKE + ResEd
  • Win32和64OpenSSL

    千次下载 热门讨论 2018-07-03 16:52:22
    Windows32和Windows64的OpenSSL亲测可用,附详细安装方式https://blog.csdn.net/zha6476003/article/details/80900988
  • Python调用Win32 API实现截图

    千次阅读 2020-12-22 14:23:36
    0x01 Win32 API简介Win32 API即为Microsoft 32位平台(包括:Windows 9x, Windows NT3.1/4.0/5.0, WindowsCE等)的应用程序编程接口(Application Programming Interface),是构筑所有32位Windows平台的基石,所有在Win...
  • PYTHON:Win32函数大全

    千次阅读 2020-12-10 06:48:14
    主要负责模拟键盘和鼠标操作,对win32gui获取的标签进行点击/获取值/修改值等操作Win32con:全面的库函数,提供Win32gui和Win32api需要的操作参数Win32gui 函数FindWindowhld=win32gui.FindWin...
  • 想使用win32gui这个包,电脑环境没有这个包,直接运行: pip install -i https://pypi.doubanio.com/simple/ win32gui 报错: 查找资料后发现,他是pypiwin32的一部分,直接安装pypiwin32就可以,不能用pip install ...
  • sqlite-shell-win32-x86-3080200.zip

    热门讨论 2014-01-14 22:40:40
    sqlite-shell-win32-x86-3080200.zip sqlite的windows版本
  • import win32gui import win32con import win32api # 从顶层窗口向下搜索主窗口,无法搜索子窗口 # FindWindow(lpClassName=None, lpWindowName=None) 窗口类名 窗口标题名 handle = win32gui.FindWindow("...
  • win32dasmV10

    热门讨论 2012-04-07 19:21:24
    win32dasmV10。Win32dasm是个反编译工具,它可以将应用程序静态反编译为WIN 32汇编代码,利用Win32dasm我们可以对程序进行静态分析,帮助快速找到程序的破解突破口,有时甚至可以直接用它来破解软件。不过Win32dasm...
  • pywin32+excel(一)——Python使用win32com/pywin32操作excel

    万次阅读 多人点赞 2020-08-15 11:37:30
    正式使用 一千个读者一千个哈姆雷特,单纯 save()...excel = win32.Dispatch('Excel.Application') excel.Visible = False # 如果是True 会打开excel程序(界面) excel.DisplayAlerts = 0 # 不显示警告信息 wb = exce
  • WIN32 预定义宏WIN32,_WIN32,_WIN64介绍使用

    千次阅读 多人点赞 2019-12-11 14:41:33
    1.WIN32宏 在 Win32 配置下,WIN32 在“项目属性-C/C++-预处理器-预处理器定义”里声明了,而在 x64 配置下,这个常量并不在项目预定义列表中。这是否说明可以根据 WIN32 来判断是否在 x64 平台呢?不。在 Windows ...
  • win32diskimager

    千次下载 热门讨论 2014-06-30 20:49:01
    本软件主要用作向SD卡写入镜像,你可以用它来制作树莓派的SD存储卡,或是是Chromebook 的 U 盘启动。亲测好用
  • eclipse-jee-mars-2-win32-x86_64.zip 工具

    千次下载 热门讨论 2016-04-08 18:43:40
    eclipse-jee-mars-2-win32-x86_64.zip eclipse 火星版本
  • eclipse-java-luna-SR2-win32-x86_64工具

    千次下载 热门讨论 2015-03-06 08:53:13
    Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development...
  • python环境已经安装win32api的前提下,仍报DLL load failed while importing win32api的解决方法
  • python win32 窗口截图

    千次阅读 2020-12-31 17:06:10
    python win32 窗口截图 获取窗口句柄和标题 import win32gui hwnd_title = dict() def _get_all_hwnd(hwnd, mouse): if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui....
  • 用windows API注册生成的窗口类,能实现窗口的透明,无边框以及窗口的移动,该CPP文件直接在VC中新建一个空的WIN32应用程序就行
  • 1. 工具:Spy++和win32con控件、win32gui控件现在这个工具:以QQ为例我们可以拖住的方式获取窗口的信息。我们在需要Python的另外两个模块按照Python32位版本,通过黑屏终端的命令进行按照如果我们在按照的过程中如下...
  • win32com excel转pdf

    千次阅读 2021-11-12 17:30:55
    import win32process import win32api import win32con 近来因为某些原因,需要将遍历一个双层文件夹,向里面的excel插入图片,并打印出来。 所谓双层: 即文件夹下包文件夹,类似于这种,对于数据整理来说十分.....
  • import win32api import win32con import win32gui import time import win32clipboard as w 安装包可以通过pip进行安装 : pip install win32api ,我使用的是Anaconda,直接import。 二、找到微信聊天窗口: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 859,118
精华内容 343,647
关键字:

win32