Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python检测窗口是否存在?_Python_Python 3.x - Fatal编程技术网

如何使用python检测窗口是否存在?

如何使用python检测窗口是否存在?,python,python-3.x,Python,Python 3.x,正如标题所说,我想知道一种使用python检测窗口是否存在的方法。我使用它是为了在文本文件有一个或多个字符串实例时关闭窗口。我知道如何检测字符串,以及如何关闭窗口(尽管除了ahk和pyautogui.press()之外,是否有更好的方法可以关闭窗口而不终止进程),但我不知道如何检测窗口是否存在。为了澄清,我想检测窗口,而不是进程,因为正在关闭的应用程序也在后台运行 我不擅长解释,所以如果有什么我需要解释的,请尽管问 最后一件事,我正在使用Python3.x 使用我枚举所有窗口并检查窗口标题: 导

正如标题所说,我想知道一种使用python检测窗口是否存在的方法。我使用它是为了在文本文件有一个或多个字符串实例时关闭窗口。我知道如何检测字符串,以及如何关闭窗口(尽管除了ahk和pyautogui.press()之外,是否有更好的方法可以关闭窗口而不终止进程),但我不知道如何检测窗口是否存在。为了澄清,我想检测窗口,而不是进程,因为正在关闭的应用程序也在后台运行

我不擅长解释,所以如果有什么我需要解释的,请尽管问

最后一件事,我正在使用Python3.x

使用我枚举所有窗口并检查窗口标题:

导入win32gui
def get_window_titles():
ret=[]
def winEnumHandler(hwnd,ctx):
如果win32gui.IsWindowVisible(hwnd):
txt=win32gui.GetWindowText(hwnd)
如果是txt:
ret.append((hwnd,txt))
win32gui.EnumWindows(winEnumHandler,无)
回程网
所有标题=获取窗口标题()
window_start=lambda title:[(hwnd,full_title)对于(hwnd,full_title),如果为full_title,则为所有_title中的(hwnd,full_title)。startswith(title)]
所有匹配的窗口=窗口开始('无标题-记事本')

如果linux需要这个,有一个项目可以简化这个任务。

这是在windows、linux和mac上吗?窗口与流程有何不同?进程是否有多个窗口?是否只关闭一个窗口而不关闭整个过程?
from ahk import AHK

ahk = AHK()

win = ahk.win_get(title='Untitled - Notepad')
win.close()