我需要做的就是创建一个程序,列出我的 Windows 机器上所有正在运行的服务。我尝试了很多方法,包括 psutil 都无济于事。从那以后,我试图通过执行“net stat”命令来简化它。它有效,但输出是乱码。有没有办法把它保存到一个漂亮整洁的文本文件中?另外,我想在每一行旁边添加“运行”一词。当我尝试添加时,出现以下错误:
文件“./Python37/test3.py”,第 3 行,位于 print(str(result.stdout + 'running')) 类型错误:无法将 str 连接到字节
到目前为止,这是我的代码:
import subprocess
result = subprocess.run(['net', 'start'], stdout=subprocess.PIPE)
print(str(result.stdout + 'running'))
最佳答案
使用EnumServicesStatus像这样的 API:
import win32con
import win32service
def ListServices():
resume = 0
accessSCM = win32con.GENERIC_READ
accessSrv = win32service.SC_MANAGER_ALL_ACCESS
#Open Service Control Manager
hscm = win32service.OpenSCManager(None, None, accessSCM)
#Enumerate Service Control Manager DB
typeFilter = win32service.SERVICE_WIN32
stateFilter = win32service.SERVICE_STATE_ALL
statuses = win32service.EnumServicesStatus(hscm, typeFilter, stateFilter)
for (short_name, desc, status) in statuses:
print(short_name, desc, status)
ListServices();
- win32service 和 win32con 是 pywin32 开源项目的一部分,您可以下载最新版本 here .
关于python - 使用 Python 在 Windows 10 上列出本地运行的服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52341845/