通过python控制windows窗口的关闭和显示
代码:
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 微信 主程序 关闭...
本文来自博客园,作者:河北大学-徐小波,转载请注明原文链接:https://www.cnblogs.com/xuxiaobo/p/17293103.html