You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows系统中仅显示正在运行的应用程序而非全部tasklist内容

解决方案

方法1:直接通过命令行管道筛选(无需额外依赖)

你可以直接给tasklist命令搭配Windows自带的findstr工具做内容过滤,不需要安装额外依赖,直接构造命令传给os.system即可:

  • 固定筛选指定应用的命令:
    tasklist | findstr /i "chrome.exe zalo.exe"
    参数说明:
    • /i 表示匹配时忽略大小写,避免因为进程名大小写差异导致漏匹配
    • 引号内的内容是你要筛选的进程名,多个进程名用空格分隔
      直接把命令传入os.system就能得到仅包含目标应用的运行结果:
import os
os.system('tasklist | findstr /i "chrome.exe zalo.exe"')

如果要筛选所有带交互窗口的用户级运行应用(排除后台系统进程),可以用tasklist自带的过滤参数:
tasklist /fi "windowtitle ne N/A" /fi "status eq running"
该命令会过滤掉无窗口标题的后台进程,只显示有交互界面的正在运行的应用。

方法2:用psutil库实现更灵活的进程查询(推荐)

如果你后续需要对进程数据做进一步处理(比如获取PID、内存占用、执行路径等),建议用第三方库psutil实现,不需要手动解析命令行输出,稳定性和扩展性更高:
首先安装依赖:
pip install psutil
示例代码:

import psutil

# 自定义要筛选的进程名列表
target_procs = {'chrome.exe', 'zalo.exe'}
for proc in psutil.process_iter(['name', 'pid', 'status']):
    try:
        proc_info = proc.info
        if proc_info['name'].lower() in target_procs and proc_info['status'] == 'running':
            print(f"进程名:{proc_info['name']},PID:{proc_info['pid']}")
    except (psutil.NoSuchProcess, psutil.AccessDenied):
        # 跳过无权限访问或已经结束的进程
        continue

如果需要筛选所有前台带窗口的应用,可以额外搭配win32gui获取窗口对应的进程ID做匹配,过滤掉后台无窗口的静默进程。

内容的提问来源于stack exchange,提问作者NHITUYET1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:24:00