首页 > 系统相关 >通过python控制windows窗口的关闭和显示

通过python控制windows窗口的关闭和显示

时间:2023-04-06 16:11:22浏览次数:45  
标签:info 主程序 窗口 python 微信 windows win32gui hwnd def

代码:

import win32gui, win32con, win32api
import os,sys,re
import ctypes
import time


def showWindow(hwnd):
    # 展示窗口,以下几行代码都可以唤醒窗口
    win32gui.ShowWindow(hwnd, win32con.SW_SHOW)
    win32gui.ShowWindow(hwnd, win32con.SW_SHOWNA)
    win32gui.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)
    win32gui.ShowWindow(hwnd, win32con.SW_SHOWDEFAULT)
    

def hideWindow(hwnd):
    #最小化
    win32gui.ShowWindow(hwnd, win32con.SW_SHOWMINIMIZED)
    
def closeWindow(hwnd):
    # 关闭窗口,以下代码等价
    #win32gui.CloseWindow(hwnd)
    win32gui.PostMessage(hwnd,win32con.WM_CLOSE,0,0)
    
def getFrontWindow():
    # 获取当前置顶的窗口
    top_hwnd = win32gui.GetForegroundWindow()
    return top_hwnd
    
def setFrontWindow(hwnd):
    # 置顶窗口
    win32gui.SetForegroundWindow(hwnd)

def setWindowPosition(hwnd, x, y, w, h):
    #调整目标窗口到坐标(600,300),大小设置为(600,600)
    win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, x,y,w,h, win32con.SWP_SHOWWINDOW)

def getHwndInfo(hwnd):
    info = {}
    info['hwnd'] = hwnd
    info['hex'] = hex(hwnd)
    info['classname'] = win32gui.GetClassName(hwnd)
    info['title'] = win32gui.GetWindowText(hwnd)
    info['childs'] = []
    return info

def printinfo(hwnd):
    print('%s %s %s %s 主程序' % (str(hwnd['hwnd']), hwnd['hex'], hwnd['classname'], hwnd['title']))

def closeprintinfo(hwnd):
    print('%s %s %s %s 主程序 关闭...' % (str(hwnd['hwnd']), hwnd['hex'], hwnd['classname'], hwnd['title']))

#TrayNotifyWnd 任务栏右边托盘图标
if __name__ == '__main__':
    while True:
        print('开始执行')
        hwndlist = []
        hwndInfoList = []
        win32gui.EnumWindows(lambda hwnd, param: param.append(hwnd), hwndlist)
        for hwnd in hwndlist:
            info = getHwndInfo(hwnd)
            hwndInfoList.append(info)
            
        hidelist = []
        for i in hwndInfoList:
            if i['title'] == '微信':
                printinfo(i)
                if i['classname'] == 'Chrome_WidgetWin_0':
                    hidelist.append(i)
        
        
        for i in hidelist:
            closeprintinfo(i)
            i['hwnd'] = int(i['hwnd'])
            #showWindow(i['hwnd'])
            hideWindow(i['hwnd'])
            closeWindow(i['hwnd'])
            
        
        time.sleep(3)
        print('执行完毕')
        print()

 

我这个是每隔3秒去关闭一下微信视频号的代码,

可以改造出一个配置文件,格式如:

微信:Chrome_WidgetWin_0,Chrome_WidgetWin_1

微信企业版:Chrome_WidgetWin_3,Chrome_WidgetWin_4

 

去控制多种窗口的关闭,家里有淘气小孩,可以试一试

执行日志输出:

开始执行
131502 0x201ae TrayNotifyWnd 微信 主程序
66772 0x104d4 WeChatMainWndForPC 微信 主程序
66792 0x104e8 CefWebViewWnd 微信 主程序
执行完毕

开始执行
131502 0x201ae TrayNotifyWnd 微信 主程序
3802924 0x3a072c Chrome_WidgetWin_0 微信 主程序
66772 0x104d4 WeChatMainWndForPC 微信 主程序
66792 0x104e8 CefWebViewWnd 微信 主程序
3802924 0x3a072c Chrome_WidgetWin_0 微信 主程序 关闭...

 

标签:info,主程序,窗口,python,微信,windows,win32gui,hwnd,def
From: https://www.cnblogs.com/xuxiaobo/p/17293103.html

相关文章

  • python面向对象基础
    1.__str__def__str__(self):return'****'print对象时,打印的为__str__函数返回的值2.__del__()def__del__(self):#pass当删除对象时,将会自动调用__del__函数(删除对象:delobj)python继承:classA(B):pass其中A继承Bpython3+classA(object):pass任......
  • python3使用seaborn生成带有扰动点的分组箱型图
    不分组箱型图importjsonimportseabornassnsimportmatplotlib.pyplotaspltfig=plt.figure(figsize=(20,5))sns.set(style="darkgrid")xData=[]yData=[]zData=[]withopen('./files/1.txt',encoding='utf-8-sig')asf:......
  • python 打包及发布
    打包pythonsetup.pybdist_wheel需要进行C++编译,因此在执行上述命令之前请确保已经安装了【VisualStudio(Windows)】、【GCC(Linux)】、【XCode(Mac)】编译器。发布先安装一下twine:python-mpipinstalltwinetwineuploaddist/*这时候它会提示你输入pypi的账号密码没......
  • bootstrap实现弹出窗口
    bootstrap实现弹出窗口 bootstrap使用modal-dialog实现弹对话框。一个对话框包含3部分:对话框头部 modal-header对话框内容体 modal-body对话框底部 modal-footer如下html可以放入<body>标签的任何位置,我习惯紧随<body>标签之后。html代码片段:<divclass="modalfad......
  • 20230406-python-yaml文件操作
               ......
  • CAD命令行怎么恢复到初始状态?CAD命令行窗口恢复步骤
    CAD制图过程中,为了提高绘图效率经常会用到各种命令,很多命令信息及操作提示会在CAD命令行中显示。可当不小心改变了命令行的状态时,该怎么办呢?下面就和小编来了解一下CAD命令行怎么恢复到初始状态吧!CAD命令行窗口恢复初始步骤:1、启动浩辰CAD软件后,调用OP命令,即可打开【选项】对话......
  • python实现各种算法详解,以及时间复杂度
    python实现各种排序1.快速排序1:首先取序列第一个元素为基准元素pivot=R[low]。i=low,j=high。2:从后向前扫描,找小于等于pivot的数,如果找到,R[i]与R[j]交换,i++。3:从前往后扫描,找大于pivot的数,如果找到,R[i]与R[j]交换,j--。4:重复2~3,直到i=j,返回该位置mid=i,该位置正好为pivot......
  • Python的函数和方法如何区分呢?
    结论>>>:无论是函数还是方法都用def关键字来定义方法:只要是自动传值都是方法、由谁来调用、会把自身传入函数:有几个值就传几个值否则会报错目录一、详细介绍函数和方法二、用几个关键字来判断三、通过代码小案例验证一、详细介绍函数和方法1.函数Python中的函数其实就是......
  • Linux系统利用Python操作word和excel进行办公自动化
    依赖Python3Python-docx参考文档pipinstallPython-docxopenpyxl参考文档pipinstallopenpyxl读取Excel文件importopenpyxl#加载excel文件workbook=openpyxl.load_workbook('未命名1.xlsx',read_only=False)#获取指定sheetsheet=workbook.get_shee......
  • 啥是佩奇?Python3大战小猪佩奇
    啥是佩奇最近火了啥是佩奇?乍一听很好笑,但笑完之后又很心酸。什么是佩奇,这个问题并不只有影片中的李玉宝奇怪,可能我们身边的父母和老人都有过这种类似的问题。小时候,爸爸妈妈是我们的港湾。长大后,我们是爸爸妈妈的大树。“看过影片之后,我决定这个周末就回家。”长期在大连工作的沈阳......