1

我正在使用此代码获取当前窗口

from typing import Optional
from ctypes import wintypes, windll, create_unicode_buffer

def getForegroundWindowTitle() -> Optional[str]:
    hWnd = windll.user32.GetForegroundWindow()
    length = windll.user32.GetWindowTextLengthW(hWnd)
    buf = create_unicode_buffer(length + 1)
    windll.user32.GetWindowTextW(hWnd, buf, length + 1) 
    return buf.value if buf.value else None 

print(getForegroundWindowTitle())
    
    output:
        Videos
        git
        Downloads
        Python check if current window is file explorer - Stack Overflow - Google Chrome

虽然可以使用它轻松识别 google chrome 选项卡,但问题是无法知道Videos、git、Downloads是否是 windows 文件夹(使用文件资源管理器打开)。

那么,有没有办法以这种格式获取输出Videos - File Explorer
/ 检查当前窗口是否是 windows 文件夹/文件资源管理器窗口?

4

1 回答 1

2

从同一个问题我修改了 Nuno Andre 的代码 https://stackoverflow.com/a/56572696/2532695

import ctypes
from ctypes import wintypes
import psutil

user32 = ctypes.windll.user32

h_wnd = user32.GetForegroundWindow()
pid = wintypes.DWORD()
user32.GetWindowThreadProcessId(h_wnd, ctypes.byref(pid))
print(psutil.Process(pid.value).name())

这个应该可以解决问题,但是您需要 psutil (pip install psutil)。如果活动窗口是资源管理器窗口,您应该会看到类似“Explorer.exe”的内容。

于 2020-12-29T12:21:01.293 回答