如何在Python中结束文件资源管理器explorer.exe但不终止Shell
无需依赖nircmd.exe的Python实现:关闭所有文件资源管理器窗口
可以借助pywin32库调用Windows API实现,无需额外依赖工具。核心思路是枚举系统中所有顶层窗口,匹配文件资源管理器对应的窗口类CabinetWClass,然后向这些窗口发送关闭消息。
步骤1:安装依赖库
先通过pip安装pywin32:
pip install pywin32
步骤2:实现代码
import win32gui import win32api def close_explorer_windows(): def window_enumeration_callback(hwnd, _): # 获取当前窗口的类名 class_name = win32gui.GetClassName(hwnd) # 匹配文件资源管理器窗口类 if class_name == "CabinetWClass": # 发送WM_CLOSE消息关闭窗口(和手动点击关闭按钮效果一致) win32api.SendMessage(hwnd, 0x0010, 0, 0) # 枚举所有顶层窗口 win32gui.EnumWindows(window_enumeration_callback, None) if __name__ == "__main__": close_explorer_windows()
说明
CabinetWClass是Windows文件资源管理器窗口的标准类名,确保只会匹配文件管理器窗口,不会影响其他进程。- 发送
WM_CLOSE消息(十六进制0x0010)会让窗口正常关闭,不会终止explorer.exe主进程,避免桌面重启的问题。
内容的提问来源于stack exchange,提问作者iFlxy
相关产品推荐
相关产品推荐

