Python---捕捉窗口

简介: Python---捕捉窗口

# -*- coding:utf-8 -*-

import cv2

import numpy as np

import win32api

import win32gui

import win32con

from PIL import ImageGrab

import time

import random

import sys

import pyautogui

import autopy

import pyperclip



# 窗体标题  用于定位窗体

WINDOW_TITLE = "窗口名" #可以是QQ聊天窗口



# 获取窗体坐标位置

def getGameWindow():

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

   window = win32gui.FindWindow(None, WINDOW_TITLE)


   # 没有定位到窗体

   while not window:

       print('获取窗口失败,10秒后重新尝试')

       time.sleep(10)

       window = win32gui.FindWindow(None, WINDOW_TITLE)


   # 定位到窗体

   # 置顶窗口

   win32gui.SetForegroundWindow(window)

   pos = win32gui.GetWindowRect(window)

   print("Game windows at " + str(pos))

   return (pos[0], pos[1])


def write():

   win32api.SetCursorPos((x1 + 15, y1 + 18))

   win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x1 + 15, y1 + 18, 0, 0)

   # win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x1 + 15, y1 + 18, 0, 0)



def keybd_event(VK_CODE): #VK_CODE为键盘编码

   # @Keyboard

   # input

   VK_CODE = int(VK_CODE)

   win32api.keybd_event(VK_CODE, 0, 0, 0)

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

   time.sleep(2)


def mousemove_click(x,y):


   autopy.mouse.smooth_move(x, y)


   autopy.mouse.click()



if __name__ == '__main__':

   random.seed()

   # i. 定位窗体

   game_pos = getGameWindow()

   print(str(game_pos[0])+"-"+str(game_pos[1]))

   # pyautogui.typewrite('啊啊啊啊!', 0.25)

   pyperclip.copy('哈哈哈')  # 先复制

   pyautogui.hotkey('ctrl', 'v')  # 再粘贴

   # pyautogui.alert('这个消息弹窗是文字+OK按钮')  # 返回OK

   # pyautogui.confirm('这个消息弹窗是文字+OK+Cancel按钮') # 返回OK 或 Cancel

   # pyautogui.prompt('这个消息弹窗是让用户输入字符串,单击OK') # 返回输入的字符串

   # pyautogui.prompt('这个消息弹窗是让用户输入字符串,单击OK') # 返回输入的字符串

   # keybd_event(13)

   # mousemove_click(484,864)


相关文章
|
6月前
|
API Python Windows
python3应用windows api对后台程序窗口及桌面截图并保存的方法
python3应用windows api对后台程序窗口及桌面截图并保存的方法
515 1
|
6月前
|
测试技术 Python Windows
【如何学习Python自动化测试】—— 多层窗口定位
【如何学习Python自动化测试】—— 多层窗口定位
|
6月前
|
存储 前端开发 安全
python窗口刷新图片
【4月更文挑战第11天】
|
6月前
|
Python
Python tkinter 初探Toplevel控件搭建父子窗口
Python tkinter 初探Toplevel控件搭建父子窗口
173 0
Python tkinter 初探Toplevel控件搭建父子窗口
|
程序员 Python
Python Qt GUI设计:窗口之间数据传递(拓展篇—5)
在开发程序时,如果这个程序只有一个窗口,则应该关心这个窗口里面的各个控件之间是如何传递数据的。如果这个程序有多个窗口,那么还应该关心不同的窗口之间是如何传递数据的。 本篇博文首先给出一个例子,说明在一个窗口中不同控件之间的数据是如何传递的。对于多窗口的情况,一般有两种解决方法:一种是主窗口获取子窗口中控件的属性,另一种是通过信号与槽机制,一般是子窗口通过发射信号的形式传递数据,主窗口的槽函数获取这些数据。
|
程序员 Python
Python Qt GUI设计:QScrollBar类实现窗口水平或垂直滑动条效果(拓展篇—4)
使用QScrollBar可以在窗口控件提供了水平的或垂直的滚动条,这样可以扩大当前窗口的有效装载面积,从而装载更多的控件。
|
Python 容器
Python Tkinter教程(一)——tkinter编程基本步骤、窗口基本属性及Toplevel控件的使用
Python Tkinter教程(一)——tkinter编程基本步骤、窗口基本属性及Toplevel控件的使用
257 1
selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处
selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处
|
Python
Python tkinter库之Toplevel 子窗口与主窗口之间的联系
Python tkinter库之Toplevel 子窗口与主窗口之间的联系
369 0
|
Java Python
Python 捕捉traceback异常栈信息
Python 捕捉traceback异常栈信息
143 0