资源简介
c#编写的任务管理器,用于获取系统中的内存信息,CPU信息,进程的运行情况等
代码片段和文件信息
using System;
using System.IO;
using System.Collections;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading;
namespace Lemony.SystemInfo
{
///
/// CustomMarshaler class implementation.
///
public abstract class CustomMarshaler
{
#region Fields
// The internal buffer
internal byte[] data;
private MemoryStream stream;
private BinaryReader binReader;
private BinaryWriter binWriter;
#endregion
#region constructors
public CustomMarshaler()
{
}
#endregion
#region public methods
public void Deserialize()
{
if (data != null)
{
if (binReader != null)
{
binReader.Close();
stream.Close();
}
// Create a steam from byte array
stream = new MemoryStream(data);
binReader = new BinaryReader(stream System.Text.Encoding.Unicode);
ReadFromStream(binReader);
binReader.Close();
}
}
public void Serialize()
{
if (data != null)
{
stream = new MemoryStream(data);
binWriter = new BinaryWriter(stream System.Text.Encoding.Unicode);
WriteToStream(binWriter);
binWriter.Close();
}
}
public int GetSize()
{
int size = 0;
FieldInfo[] fields = this.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
foreach (FieldInfo field in fields )
{
if (field.FieldType.IsArray)
{
size += GetFieldSize(field);
}
else if (field.FieldType == typeof(string))
{
size += GetFieldSize(field)*2;
}
else if (field.FieldType.IsPrimitive)
{
size += Marshal.SizeOf(field.FieldType);
}
}
return size;
}
#endregion
#region properties
public byte[] ByteArray
{
get
{
return data;
}
}
#endregion
#region virtual and protected methods
public virtual void ReadFromStream(BinaryReader reader)
{
object[] param = null;
// Get all public fields
FieldInfo[] fields = this.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
// Loop through the fields
foreach(FieldInfo field in fields)
{
// Retrieve the read method from ReadMethods hashtable
MethodInfo method = (MethodInfo)MarshallingMethods.ReadMethods[field.FieldType];
if (field.FieldType.IsArray)
{
Type element = field.FieldType.GetElementType();
if (element.IsValueType && element.IsPrimitive)
{
if ((element == typeof(char)) || element == typeof(byte))
{
param = new object[1];
param[0] = GetFieldSize(field);
field.SetValue(this method.Invoke(reader param));
}
else // any other value type array
{
param = new object[2];
param[0] = reader;
param[1] = GetFieldSize(field);
field.SetValue(this method.Invoke(null param));
}
}
else // array
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 36864 2009-08-19 14:36 SystemInfo1\bin\Lemony.SystemInfo.dll
文件 65024 2009-08-19 14:36 SystemInfo1\bin\Lemony.SystemInfo.pdb
文件 36864 2009-08-19 14:36 SystemInfo1\bin\Test.exe
文件 38400 2009-08-19 14:36 SystemInfo1\bin\Test.pdb
文件 5632 2005-12-08 14:51 SystemInfo1\bin\Test.vshost.exe
文件 36864 2009-08-19 14:36 SystemInfo1\SystemInfo\bin\Lemony.SystemInfo.dll
文件 65024 2009-08-19 14:36 SystemInfo1\SystemInfo\bin\Lemony.SystemInfo.pdb
文件 36864 2009-08-19 14:36 SystemInfo1\SystemInfo\bin\Test.exe
文件 38400 2009-08-19 14:36 SystemInfo1\SystemInfo\bin\Test.pdb
文件 5632 2005-12-08 14:51 SystemInfo1\SystemInfo\bin\Test.vshost.exe
文件 14926 2007-03-29 09:06 SystemInfo1\SystemInfo\CustomtMarshaler.cs
文件 908 2007-03-29 09:06 SystemInfo1\SystemInfo\DiskInfo.cs
文件 885 2007-03-29 09:06 SystemInfo1\SystemInfo\IpInfo.cs
文件 2000 2007-03-29 09:07 SystemInfo1\SystemInfo\MIB_IFROW.cs
文件 557 2007-03-29 09:07 SystemInfo1\SystemInfo\MIB_IFTABLE.cs
文件 3427 2007-03-29 09:07 SystemInfo1\SystemInfo\NetInfo.cs
文件 36864 2009-08-19 14:36 SystemInfo1\SystemInfo\obj\Debug\Lemony.SystemInfo.dll
文件 65024 2009-08-19 14:36 SystemInfo1\SystemInfo\obj\Debug\Lemony.SystemInfo.pdb
文件 168 2009-08-19 14:37 SystemInfo1\SystemInfo\obj\SystemInfo.csproj.FileList.txt
文件 1519 2007-03-29 09:07 SystemInfo1\SystemInfo\ProcessInfo.cs
文件 1321 2007-03-29 09:04 SystemInfo1\SystemInfo\Properties\AssemblyInfo.cs
文件 14926 2007-03-29 09:06 SystemInfo1\SystemInfo\SystemInfo\CustomtMarshaler.cs
文件 908 2007-03-29 09:06 SystemInfo1\SystemInfo\SystemInfo\DiskInfo.cs
文件 885 2007-03-29 09:06 SystemInfo1\SystemInfo\SystemInfo\IpInfo.cs
文件 2000 2007-03-29 09:07 SystemInfo1\SystemInfo\SystemInfo\MIB_IFROW.cs
文件 557 2007-03-29 09:07 SystemInfo1\SystemInfo\SystemInfo\MIB_IFTABLE.cs
文件 3427 2007-03-29 09:07 SystemInfo1\SystemInfo\SystemInfo\NetInfo.cs
文件 36864 2009-08-19 14:36 SystemInfo1\SystemInfo\SystemInfo\obj\Debug\Lemony.SystemInfo.dll
文件 65024 2009-08-19 14:36 SystemInfo1\SystemInfo\SystemInfo\obj\Debug\Lemony.SystemInfo.pdb
文件 168 2009-08-19 14:37 SystemInfo1\SystemInfo\SystemInfo\obj\SystemInfo.csproj.FileList.txt
............此处省略78个文件信息
- 上一篇:C#控制台贪吃蛇
- 下一篇:Asp.Net最佳学习路线图
相关资源
- C#控制台贪吃蛇
- C# TabControl 重绘高仿 360浏览器选项卡
- 标尺的C#实现参考
- 水准网平差的一个c#代码
- 一种图纸数字化程序的C#编程实现
- 简单的C#版本DICOM影像显示源码
- .net TabControl 多种风格的自绘
- C#版医院门诊管理系统完整版源码
- VS2008开发的C#酒店管理系统源码SQL20
- C# tcpudp服务器,客户端
- 串口数据采集开发C#
- C#写的备忘录所有源码,Access数据库
- C#通过ACCESS数据库,对学生信息表进行
- 自己用c#编写的财务管理系统中生成资
- 使用C#实现加密狗身份验证源代码
- C# Socket入门学习! Socket入门学习!
- 实现Voronoi图[C#]
- c#七参数解算_大地测量学
- 一个处理c#图像选择拖动选择框放大选
- c#版本MODBUS RTU类库及测试程序
- 利用C#语言开发的一款DNF辅助,提供源
- Q758437.zip c#中如何将datagridview中的数据
- Q703119 问题的回答 c# combobox如何动态模
- C#Windows窗体一元二次方程求解程序
- C#利用ThoughtWorks.QRCode.dll创建和解析二
- c#利用IC卡制作考勤程序源码详细好用
- c#操作防火墙代码-C#开启或关闭防火墙
- C#考试答题系统
- c#自定义透明按钮控件
- WPF C# 轮播图
评论
共有 条评论