The way that user had defined find_window only allows you to choose by the classname of the window

用户定义它的方式是将这两个参数class_name和window_name传递给^{}(后者反过来只调用Win32 API函数^{})。所以,就这样做:windowmgr.find_window(None, 'My Window Name')

但即使这不是真的,也不需要使用他的find_window函数;很明显,如何调用win32gui.FindWindow自己:hwnd = win32gui.FindWindow(None, 'My Window Name')

如果你想对FindWindow/EnumWindows/etc.语法有一个很好的解释,你有没有试着查看它们的文档?有什么你不明白的吗?

同时:… the classname of the window, which I don't know and haven't been able to find since it is just a game running in Java

它在Java中运行有什么区别?你可以枚举窗口并打印出他们的类名,无论它们是用C++、java、.net、python或其他东西编写的。或者使用Visual Studio/VS Express附带的工具,或者任何你可以在网上找到的免费改进版本,比如MS Spy++,它可以让你指向一个窗口并给出标题和类名。I don't want to enumerate the windows to find it as I'm not sure how that would work.

只要用正则表达式调用windowmgr.find_window_wildcard(wildcard),它就会枚举窗口并将它们的标题与该正则表达式进行比较。

如果要编写自己的代码来完成此任务,只需编写如下函数:def my_callback(hwnd, cookie):

现在,当你这样做时:win32gui.EnumWindows(my_callback, some_cookie)

…它将在每个窗口调用一次您的my_callback函数,其中hwnd是窗口(您可以传递给win32gui函数,例如GetWindowText),而cookie是您传入的some_cookie值。(如果不需要传入任何内容,只需传入None,并且不使用回调函数中的值。但您可以看到另一个应答器是如何使用它来传递正则表达式的。)

同时:using find_window_wildcard as it's written in that script has managed to bring the window to the foreground a few times, but only if the window was already open, and it only works intermittently.

首先,如果窗口不存在,就不能将其带到前台。你认为这会怎样?

就间歇工作而言,我的猜测是有很多窗口与您的通配符匹配,程序将任意选择其中一个窗口。可能不是你想要的那个。(它甚至可能是一个隐藏的窗口或其他东西,所以你根本看不到任何事情发生。)

无论如何,您不需要使用find_window_wildcard;如果您知道确切的名称,请使用该名称。当然,它可能仍然不是唯一的(无论游戏的名称是什么,没有什么可以阻止你打开一封电子邮件或一个记事本窗口的相同标题…顺便说一句,这就是为什么你想先尝试类名),但至少它比一些未指定的通配符更有可能是唯一的。

那么,如果类名不是唯一的(或者,更糟的是,它是一个特殊的“number”类,比如32770用于一般的对话框窗口),而窗口名也不是唯一的呢?您可以通过查看所属进程或模块(exe/dll)或父窗口或其他任何内容来更好地缩小范围。您必须查看win32gui和/或MSDN文档(链接在上面)以查找可能要尝试的内容,并通过反复尝试(也要记住Spy工具),直到找到某种唯一指定窗口的方法。然后编码。

python切换消息窗_用Python切换窗口相关推荐

  1. python切换消息窗_如何使用PyQ在python中的两个窗口之间切换

    我正在开发一些应用程序.我想创建一个工具栏,点击后将打开设置窗口.但是我不知道该怎么做.现在的方法是,我有一个工具栏图标连接到ShowSettings函数.每次我单击图标时,这个函数都会创建一个新的设 ...

  2. python实现动态壁纸_用Python实现动态的切换桌面背景

    #!/usr/bin/python#-*- coding: utf-8 -*- importos, os.path, fnmatch, commands#壁纸图片所在的目录 wallpaper_pat ...

  3. python windows 消息通讯_在windows下使用python进行串口通讯的方法

    在windows下使用python进行串口通讯的方法 Windows版本下的python并没有内置串口通讯的pyserial的库,所以需要自己下载.参照了网上的教程,有许多用的pip的安装方式,但是试 ...

  4. python朋友圈头像_用python一键生成头像墙,将你微信好友头像全部收集起来

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python编程与实战 ( 想要学习Python?Py ...

  5. python源码学习_【Python学习】Python源码阅读(一)

    最近想读读Python源码,任何东西学习方法基本都是一样的,先从总体框架进行了解,再从自己侧重的方面逐步深入. 1. Python总体架构 左边是Python提供的大量的模块.库以及用户自定义的模块. ...

  6. python实现语音播放_用Python实现语音播报

    以下内容为带着儿子一起学Python的实现记录,为自己保存下来,也希望对其他学习者有用! 1. 确保已经安装python,本例使用python,操作系统为:Windows 10 专业版: 2. 设置环 ...

  7. cmd进入到python安装目录下_在python中安装basemap

    在python中安装basemap 1. 确保python环境安装完毕且已配置好环境变量 2. 安装geos: pip install geos 3. 下载.whl文件: (1)pyproj‑1.9. ...

  8. python语法元素测试_基于python全局设置id 自动化测试元素定位过程解析

    背景: 在自动化化测试过程中,不方便准确获取页面的元素,或者在重构过程中方法修改造成元素层级改变,因此通过设置id准备定位. 一.python准备工作: 功能:用自动化的方式进行批量处理. 比如,你想 ...

  9. python怎么算积分_利用python求积分的实例

    利用python求积分的实例 python的numpy库集成了很多的函数.利用其中的函数可以很方便的解决一些数学问题.本篇介绍如何使用python的numpy来求解积分. 代码如下: # -*- co ...

最新文章

  1. 【高并发】ThreadLocal学会了这些,你也能和面试官扯皮了!
  2. python 函数的调用的时候参数的传递_Python Unittest;如何获取调用函数时传递的参数?...
  3. 使用Thumbnailator压缩照片
  4. c++ 指针拼接字符串_字符串拼接+和concat的区别
  5. PC-[WIN7]此计算机无法联接家庭组
  6. Coding the Matrix Week 1 The Vector Space作业
  7. Xshell/Xftp个人完全免费版
  8. LayUI2.2.5中文离线文档(免费免费免费)
  9. matlab插值实验目的,matlab插值实验报告数学实验.doc
  10. 盘点美颜api中的基本算法与开发难点
  11. appinventor网络编程php,AppInventor离线版下载
  12. 如何使用Java实现类似Windows域登录
  13. postgresql 查看用户名
  14. 边学边敲边记之爬虫系列(八):Scrapy系统爬取伯乐在线
  15. 库卡工业机器人负载曲线图_DC电机性能曲线图
  16. 高中职业学院计算机一级考试试题题库,计算机一级ms office考试题库
  17. 物联网|蓝牙4.0BLE协议栈简介|IAR集成开发环境简介|IAR各版本下载链接|物联网之蓝牙4.0 BLE基础-学习笔记(2)
  18. 【QT】工程加载不出来,只有一个.pro文件
  19. JProfiler使用(Java分析工具)
  20. 唐朝书法家有哪些人物?

热门文章

  1. jsf标签_多个动态包含一个JSF标签
  2. scm maven_在运行时访问工件的Maven和SCM版本
  3. Java – HashMap详细说明
  4. 如何在Java 8中创建线程安全的ConcurrentHashSet?
  5. Lombok–您绝对应该尝试一下
  6. 使用Spring Data REST将Spring Data JPA存储库导出为REST服务
  7. 自定义Log4j 2.0
  8. java.util.concurrent.Future基础
  9. IntelliJ IDEA:使用Google Guava生成equals,hashCode和toString
  10. 创建Java动态代理