C#

Определение конфигурации компьютера различными способами. Программирование на С#

Помогите написать мини программу
1) полный физический объем памяти, объем виртуальной памяти - сколько памяти занято и свободно каждого типа
2) модель процессора: производителя, название и тип, количество процессоров, а так же версию BIOS (вывести строку!!!, т. е. не числовые значения модели, степпинга, а например «Intel P4-core»)
3) тактовую частоту процессора
4) версию ОС, номер версии ОС
5) логические диски в ОС и их тип (жесткий, сменный, CD-ROM, сетевой диск) (1 балл)
6) имя текущего принтера, если он установлен
Андрей .
Андрей .
194
вот первое:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

using System.Diagnostics;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
load();
}

//апи функция для просмотра памяти
[DllImport("kernel32.dll")]
//для выделения памяти
public static extern IntPtr GlobalAlloc(int con, int size);
[DllImport("kernel32.dll")]
//для освобождения
public static extern int GlobalFree(IntPtr start);
[DllImport("kernel32.dll")]
public static extern void GlobalMemoryStatus(ref MEMORYSTATUS lpBuffer);
//
public struct MEMORYSTATUS
{
public UInt32 dwLength; //Размер структуры, в байтах-хз че это
public UInt32 dwMemoryLoad; //процент занятой памяти
public UInt32 dwTotalPhys; //общее кол-во физической (оперативной) памяти
public UInt32 dwAvailPhys; //свободное кол-во физической (оперативной) памяти
public UInt32 dwTotalPageFile; //предел памяти для системы или текущего процесса
public UInt32 dwAvailPageFile; //Максимальный объем памяти, который текущий процесс может передать в байтах.
public UInt32 dwTotalVirtual; //общее количество виртуальной памяти (файл подкачки)
public UInt32 dwAvailVirtual; //свободное количество виртуальной памяти (файл подкачки)
public UInt32 dwAvailExtendedVirtual; //Зарезервировано. Постоянно 0.
}
//функция для считывания памяти

public void load()

{
//объявляем переменную типа мемористатус
MEMORYSTATUS memStatus = new MEMORYSTATUS();
//вызываем функцию с аргументом мемори статус
GlobalMemoryStatus(ref memStatus);

dataGridView1.Rows.Add("Используемая память", memStatus.dwMemoryLoad.ToString()+" %");
dataGridView1.Rows.Add("Общая память файлов подкачки", memStatus.dwTotalPageFile.ToString());
dataGridView1.Rows.Add("Свободная память файлов подкачки", memStatus.dwAvailPageFile.ToString());
dataGridView1.Rows.Add("Общая виртуальная память", memStatus.dwTotalVirtual.ToString());
dataGridView1.Rows.Add("Свободная виртуальная память", memStatus.dwAvailVirtual.ToString());
}

private void button1_Click(object sender, EventArgs e)
{
this.Close();
}

private void Form1_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
load();
}

}
}
ПO
Павел Oren-Wap
22 008
Лучший ответ