读书人

C#如何获得内存物理内存

发布时间: 2013-07-11 15:38:46 作者: rapoo

C#怎么获得内存物理内存?
只想获得物理内存大小,不想知道其他的东西。(随便问怎么读取注册表?)
[解决办法]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
//加入这个命名空间,用于调用系统的DLL
namespace WindowsApplication2
{
public partial class Form1 : Form
{
public struct MEMORYSTATUS1 //这个结构用于获得系统信息
{
internal uint dwLength;
internal uint dwMemoryLoad;
internal uint dwTotalPhys;
internal uint dwAvailPhys;
internal uint dwTotalPageFile;
internal uint dwAvailPageFile;
internal uint dwTotalVirtual;
internal uint dwAvailVirtual;
}
[DllImport("kernel32.dll ")]//调用系统DLL
public static extern void GlobalMemoryStatus(ref MEMORYSTATUS1 lpBuffer); //获得系统DLL里的函数
public Form1()
{
InitializeComponent();
}

private void button5_Click(object sender, EventArgs e)//这个是触发事件的按纽
{

MEMORYSTATUS1 vBuffer = new MEMORYSTATUS1();//实例化结构
GlobalMemoryStatus(ref vBuffer);//给此结构赋值


string useinfo=Convert.ToString(vBuffer.dwAvailPhys);//获得已用内存量
string allinfo=Convert.ToString(vBuffer.dwTotalPhys);//获得内存总量
MessageBox.Show(useinfo + ":" + allinfo);
//显示已用内存量:总内存量
}
}
}
[解决办法]
win32 API可以获取物理内存。

注册表操作见: http://msdn.microsoft.com/zh-cn/library/Microsoft.Win32.RegistryKey.aspx

读书人网 >C#

热点推荐