加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Python使用pywin32关闭窗口(WM_CLOSE)脚本

(2014-08-06 10:57:46)
标签:

python

wm_close

窗口

pywin32

浏览器

分类: 资料

Python写脚本的时候,遇到这么一个问题,笔者需要通过脚本去关闭一些窗口,比如关闭浏览器的窗口。这种关闭行为类似于手动去点叉关闭(比较温和,窗口程序可以有反应的时间),而不是强制地kill进程(比较暴力,但是导致窗口来不及进行一些处理就被关闭)。

 

笔者使用的方法是通过枚举当前可视的所有窗口,判断窗口的标题。例如要关闭Chrome,就判断窗口的标题是否含有“Chrome”,如果有,则将其关闭。这种方法可能会关闭一些其它的窗口,所以使用的时候要小心一点。但是优点是实现起来非常简单。

 

笔者使用的Python版本为3.4,需要额外使用一个pywin32来操纵windows平台的窗口。

 

Python代码:

import win32gui

from win32.lib import win32con

import time

 

def handle_window(hwnd, extra):

    if win32gui.IsWindowVisible(hwnd):

        if 'Chrome' in win32gui.GetWindowText(hwnd):

            win32gui.PostMessage(hwnd, win32con.WM_CLOSE, 0, 0)

 

 

if __name__ == '__main__':

    win32gui.EnumWindows(handle_window, None)

    time.sleep(5)

    TODO If app didn't close, force close.

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有