def open_app():try:win32api.ShellExecute(0, 'open', self.app_path, '', '', 1)except:print(f'Program can not be opened...')def get_windows(windowsname, filename):# 获取窗口句柄handle = win32gui.FindWindow(None, os.path.basename(windowsname).split('.')[0])# 判断该应用是否打开,如果没有打开,没有打开handle为0if handle == 0:print('程序未打开'.center(50, '='))open_app(windowsname)time.sleep(2)# app 打开以后,重新给handle赋值handle = win32gui.FindWindow(None, os.path.basename(windowsname).split('.')[0])# 应用最小化时,使用该指令可以让该应用重新最大化-->该语句非常重要win32gui.ShowWindow(handle, win32con.SW_MAXIMIZE)## 将窗口放在前台,并激活该窗口(窗口不能最小化)win32gui.SetForegroundWindow(handle)time.sleep(1)# 获取窗口DChdDC = win32gui.GetWindowDC(handle)# 根据句柄创建一个DCnewhdDC = win32ui.CreateDCFromHandle(hdDC)# 创建一个兼容设备内存的DCsaveDC = newhdDC.CreateCompatibleDC()# 创建bitmap保存图片saveBitmap = win32ui.CreateBitmap()# 获取窗口的位置信息left, top, right, bottom = win32gui.GetWindowRect(handle)# 窗口长宽width = right - leftheight = bottom - top# bitmap初始化saveBitmap.CreateCompatibleBitmap(newhdDC, width, height)saveDC.SelectObject(saveBitmap)saveDC.BitBlt((0, 0), (width, height), newhdDC, (0, 0), win32con.SRCCOPY)saveBitmap.SaveBitmapFile(saveDC, filename)get_windows(r"C:\Users\Administrator\Desktop\PyWin32.chm", "截图.png")

说明,参考的网络上其他大佬的代码,写文章时,找不到连接了,还请原谅,对代码进行了更改,主要是解决了调用窗口时,程序不存在,或者程序当前是最小化状态,从最小化状态重新返回桌面,仅供参考

Pywin32打开指定窗口相关推荐

  1. pywin32激活指定窗口,模拟键盘鼠标

    import win32guihwnd=win32gui.FindWindow("ChatWnd", "标题") #获取窗口win32gui.SetForegr ...

  2. 打开指定大小的新窗口

    使用JavaScript打开一个弹出窗口,可以使用window对象的open()方法或showModalDialog()方法完成. JavaBean类 public class ShowWindow ...

  3. Windows小技巧 -- 命令行窗口打开指定目录的资源管理器

    文章目录 方法一 explorer 命令快速打开指定目录的资源管理器 方法二 start 命令快速打开指定目录的资源管理器 start 命令小记 打开系统应用 打开新的命令行窗口 打开命令行窗口并执行 ...

  4. 打开新窗口的几种方式及target=_blank指定窗口名称

    打开新窗口的几种方式及target=_blank指定窗口名称   打开新窗口的几种方式: 1.form提交到新窗口  <form action="action.jsp" ta ...

  5. 【Python】【pywin32】【指定窗口截图】

    python实现Windows下指定窗口截屏脚本 背景 源码 参考链接 背景 最近对python pywin32模块感兴趣,且想实现一个能够截取指定窗口图片的小功能.在各大论坛遨游一番后,有所收获,记 ...

  6. [WinAPI]通过Windows系统CLSID(GUID)打开系统指定窗口,及部分[上帝模式]命令

    CLSID是类标识符,windows有众多的类对象,我门调用这些类对象就可以实现很多计算机操作, 用户在图形界面上找找找点点点,费时费力,程序员可以给用户提供脚本或者程序提供按钮完成"一键打 ...

  7. java 打开指定文件,java解决指定应用程序打开指定文件

    java解决指定应用程序打开指定文件 //打开工具的路径及名字 String toolsPath = "D:/office/Office12/WINWORD.EXE"; //被打开 ...

  8. Response.Redirect 打开新窗口的两种方法

    一般情况下,Response.Redirect 方法是在服务器端进行转向,因此,除非使用 Response.Write("<script>window.location='htt ...

  9. 用C#调用Windows API向指定窗口发送按键消息

    为什么80%的码农都做不了架构师?>>>    用C#调用Windows API向指定窗口发送 一.调用Windows API. C#下调用Windows API方法如下: 1.引入 ...

最新文章

  1. python新手项目-推荐 13 个 Python 新手练级项目
  2. MPS(主生产计划)
  3. 工程代码_特征工程学习,19 项实践 Tips!代码已开源!
  4. 5005.boost之asio简单反射型服务器客户端
  5. Android开发网
  6. HDU 1698 Just a Hook (线段树区间修改+区间查询)
  7. [转载]Oracle监听器安装与设置(2)
  8. 聊天室私人聊天原理_如何设置极其安全的私人群组聊天
  9. Linux账号安全控制与PAM认证模块
  10. loadrunner视频资料地址-boobooke
  11. 计算机存储单位字节(Byte)以及单位之间的转换
  12. wordpress 更改excerpt的长度,设置excerpt后面'[...]'的字样和链接
  13. SylixOS学习二—— SylixOS认识和使用_SylixOS虚拟机使用
  14. 非遗传承人陶一的诗词被荣获吉尼斯记录的《上海滩诗叶》收录
  15. parent.layer.open打开的页面向上个页面传值
  16. 测试点先发散后收敛思考
  17. 阿里p8免费公开五份Java架构师学习手册,助力金九银十
  18. 放弃Notepad++,替代品很多
  19. web前端培训开发,你必须知道的CSS盒模型
  20. 221. k8s_v1.15addons插件部署

热门文章

  1. 宁波网络推广,如何做好品牌传播?
  2. 2022年湖南省房地产经纪人(房地产经纪专业基础)练习题及答案
  3. 买手机时看到的各种参数,到底是啥意思!?
  4. iOS小技能:富文本图文混排
  5. How to convert string to wstring?
  6. Python+Splinter实现简单12306自动刷新抢票
  7. 51Nod 1522 上下序列 —— 区间DP
  8. jq获取页面高度_js与jquery获取屏幕宽度与高度
  9. 主线程和子线程的区别,线程之间的通信
  10. C#获取时间戳(Unix时间戳)