zoukankan
html css js c++ java
一个简单的进程察看器
using
System;
using
System.Diagnostics;
namespace
ProcessManager
{
/**/
///
<summary>
///
Summary description for Class1.
///
</summary>
class
MainEntry
{
/**/
///
<summary>
///
The main entry point for the application.
///
</summary>
[STAThread]
static
void
Main(
string
[] args)
{
if
(args.Length
<
1
)ListProcesses();
else
if
(args[
0
].Length
>
0
)ListProcess(args[
0
]);
}
private
static
void
ListProcesses()
{
string
output
=
""
;
int
limit
=
36
;
Console.WriteLine(
"
PID
"
.PadRight(
6
)
+
"
Name
"
.PadRight(
16
)
+
"
Memory
"
.PadLeft(
10
)
+
"
VM size
"
.PadLeft(
10
)
+
"
Threads count
"
.PadLeft(
20
));
Console.WriteLine(
"
-
"
.PadRight(limit
+
34
,
'
-
'
));
foreach
(Process proc
in
Process.GetProcesses())
{
string
pid
=
proc.Id.ToString();
string
pname
=
proc.ProcessName;
string
pcount
=
proc.Threads.Count.ToString();
string
pmemsize
=
(proc.PeakWorkingSet
/
1024
).ToString()
+
"
K
"
;
string
pvmsize
=
(proc.PeakPagedMemorySize
/
1024
).ToString()
+
"
K
"
;
output
=
String.Format(
"
{0}{1}{2}{3}{4}
"
,pid.PadRight(
6
),pname.PadRight(
16
),pmemsize.PadLeft(
10
),pvmsize.PadLeft(
10
),pcount.PadLeft(
10
));
Console.WriteLine(output);
}
}
private
static
void
ListProcess(
string
processid)
{
int
pid
=
-
1
;
try
{
pid
=
Convert.ToInt32(processid);
}
catch
{
}
if
(
-
1
==
pid)
{
Console.WriteLine(
"
Invalid processID!
"
);
return
;
}
string
output
=
""
;
Process proc
=
null
;
try
{
proc
=
Process.GetProcessById(pid);
}
catch
{
}
if
(
null
==
proc)
{
Console.WriteLine(
"
Invalid processID!
"
);
return
;
}
Console.WriteLine(
"
PID:
"
+
proc.Id.ToString());
Console.WriteLine(
"
-
"
.PadRight(
50
,
'
-
'
));
//
Console.WriteLine("Main Module");
//
Console.WriteLine("-".PadRight(50,'-'));
Console.WriteLine(
"
Module Name
"
.PadRight(
50
)
+
"
Memory Size
"
);
WriteModuleInformation(proc.MainModule);
Console.WriteLine(
"
-
"
.PadRight(
50
,
'
-
'
));
//
Console.WriteLine("All Modules");
//
Console.WriteLine("-".PadRight(50,'-'));
Console.WriteLine(
"
Module Name
"
.PadRight(
50
)
+
"
Memory Size
"
);
foreach
(ProcessModule pm
in
proc.Modules)WriteModuleInformation(pm);
Console.WriteLine(
"
-
"
.PadRight(
50
,
'
-
'
));
Console.WriteLine(
"
Thread List:
"
);
Console.WriteLine(
"
-
"
.PadRight(
50
,
'
-
'
));
Console.WriteLine(
"
ID
"
.PadRight(
6
)
+
"
Thread State
"
.PadRight(
20
)
+
"
Total Processor Time
"
);
Console.WriteLine(
"
-
"
.PadRight(
50
,
'
-
'
));
foreach
(ProcessThread pt
in
proc.Threads)
{
output
=
String.Format(
"
{0}{1}{2}
"
,pt.Id.ToString().PadRight(
6
),pt.ThreadState.ToString().PadRight(
20
),pt.TotalProcessorTime);
Console.WriteLine(output);
}
}
private
static
void
WriteModuleInformation(ProcessModule pm)
{
Console.WriteLine(String.Format(
"
{0}{1}
"
,pm.ModuleName.PadRight(
50
),(pm.ModuleMemorySize
/
1024
).ToString().PadLeft(
10
)
+
"
K
"
));
}
}
}
查看全文
相关阅读:
编译使用tinyxml
GitLab 项目创建后地址由Localhost改为实际IP的方法
树莓派相机设定
MongoDB的数据备份与恢复
Nginx PHP fpm forbidden 原因
PSR2规范
docker 日志管理
Docker 拷贝文件
Docker MySQL基本操作
deepin安装php5.6
原文地址:https://www.cnblogs.com/juqiang/p/51322.html
最新文章
连接IBM MQ原因码报2035的错误解决办法
通过JAVA从MQ读取消息的时候报错及解决
Ionic 动态配置url路由的设置
Ionic App中嵌入外部网页的问题
Ionic Contoller类与Service类分开需要注意的问题
Ionic 部分手机升级不成功的问题
Ionic 安装JPush过程
Ionic Android项目Splash设置
Ionic项目的建立
Ionic下的Jpush消息推送与内容显示
热门文章
Ionic下的JPush缺少统计代码问题解决方法
Ionic buid android下的此工程不是一个android项目问题
skia入门
C++调用C#之C++DLL调用C# COM控件
C++调用C#之C# COM控件
VS2010 自定义向导
ShellExecute快捷键大全
c++模板入门
c++ 日志操作
Tinyxml封装类COperatorXml
Copyright © 2011-2022 走看看