例如windows的任务管理器的进程列表
https://stackoverflow.com/questions/13206724/how-to-get-the-list-of-process
https://github.com/bryphe/node-process-windows
这里提的库都支持这些操作
const child = require('child_process')
const iconv = require('iconv-lite')
const exec = child.exec
function viewProcessMessage (name, cb) {
let cmd = process.platform === 'win32' ? 'tasklist' : 'ps aux'
exec(cmd, {encoding: "gbk"},function (err, stdout, stderr) {
if (err) {
return console.error(err)
}
iconv.decode(stdout, "GBK").split('\n').filter((line) => {
let processMessage = line.trim().split(/\s+/)
console.log(processMessage)
let processName = processMessage[0] //processMessage[0]进程名称 , processMessage[1]进程id
if (processName === name) {
return cb(processMessage[1])
}
})
})
}
利用上诉代码获取到了所有的windows进程,获取的参数如下:
请问怎么区分是软件进程还是系统进程以及如何获取软件名称和对应的图标?
例如像下图这样的:
@Lsever:
1 进程区分一种方式:进程启动的账号不一样可以区分
2 图标:图标一般在执行文件的目录地方,分为和执行文件一体和独立的文件两种。 一体的可以尝试从执行文件取资源取到图标
@2012: 进程启动的账号指的是?会话名?会话名返回两种值一种是services,另一种是Console.不知道你说的是否是这个意思。