急需抓取主要硬件信息,像鲁大师一样
急需抓取系统主要硬件信息,像鲁大师那样,如果实现的好,可以出一些费用酬谢(直接联系我谈价也行),着急啊!我的QQ:7432122
鲁大师的下载地址:
http://dl.pconline.com.cn/download/51901-1.html --------------------编程问答-------------------- 给分先 --------------------编程问答-------------------- 顶一下 --------------------编程问答-------------------- 同学们,要分有啥用啊,解决问题才是最终目标哦。 --------------------编程问答-------------------- 按F1
Environment 类
好好在这个类里找一照可能会发现号东东的吗~
谈钱伤感情。O(∩_∩)O哈! --------------------编程问答--------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using Microsoft.Win32;
//
//DllImport方法所需要的包:
using System.Runtime.InteropServices;
//StringBuilder所需要的包:
//using System.Text;
namespace test5
{
public partial class Form1 : Form
{
//Class1 hunt = new Class1();
PerformanceCounter PC = new PerformanceCounter("System", "System Up Time");
public Form1()
{
InitializeComponent();
ListViewSet();
Timer T = new Timer();
T.Interval = 1000;
T.Tick += new EventHandler(T_Tick);
T.Enabled = true;
}
/// <summary>
/// ListView 設置
/// </summary>
private void ListViewSet()
{
//ListView顯示方式
listViewControl.View = View.Details;
#region 增加Item的標題,共有三個列
//1、創建標題,共三列
listViewControl.Columns.Add("起始时间");
listViewControl.Columns.Add("结束时间");
listViewControl.Columns.Add("间隔");
#endregion
}
/// <summary>
/// //手動填加ListView方法1
/// </summary>
/// <summary>
/// 手動填加ListView方法2
/// </summary>
private void CreateViewItemMethodTow()
{
listViewControl.BeginUpdate();
#region 增加第一個Item
ListViewItem lvItem;
ListViewItem.ListViewSubItem lvSubItem;
#endregion
#region 增加Item
lvItem = new ListViewItem();
lvItem.Text = label2.Text;
lvSubItem = new ListViewItem.ListViewSubItem();
lvSubItem.Text = DateTime.Now.ToLongTimeString().ToString();
lvItem.SubItems.Add(lvSubItem);
lvSubItem = new ListViewItem.ListViewSubItem();
lvSubItem.Text = label3.Text;
lvItem.SubItems.Add(lvSubItem);
listViewControl.Items.Add(lvItem);
#endregion
listViewControl.EndUpdate();
}
public bool flagtime = false;
private void timer1_Tick(object sender, EventArgs e)
{
float TotalSeconds = PC.NextValue();
int Seconds = (int)TotalSeconds;
int hour, minute, second;
hour = Seconds / 3600;
minute = Seconds % 3600 / 60;
second = Seconds % 3600 % 60;
label4.Text = hour.ToString() + "小时" + minute.ToString() + "分钟" + second.ToString() + "秒";
long infoLeft,a,b;
label1.Text = "系统当前时间" + DateTime.Now.ToString();
if (flagtime)
{
label3.Text = datedec(DateTime.Now.ToString(), label2.Text);
}
MEMORYSTATUS1 vBuffer = new MEMORYSTATUS1();//实例化结构
GlobalMemoryStatus(ref vBuffer);//给此结构赋值
string useinfo = Convert.ToString(vBuffer.dwAvailPhys);//获得已用内存量
string allinfo = Convert.ToString(vBuffer.dwTotalPhys);//获得内存总量
infoLeft=long.Parse(allinfo)-long.Parse(useinfo);
a = infoLeft / 1048576;
b = infoLeft % 1048576 / 1024;
label9.Text = a.ToString() + "MB " + b.ToString() + "KB ";
}
private void button1_Click(object sender, EventArgs e)
{
if (!flagtime)
{
flagtime = true;
label2.Text = DateTime.Now.ToLongTimeString().ToString();
button1.Text = "停止";
}
else if (flagtime)
{
flagtime = false;
button1.Text = "计时";
}
}
public string datedec(string a, string b)
{
DateTime big, small = new DateTime();
big = Convert.ToDateTime(a);
small = Convert.ToDateTime(b);
TimeSpan result = big.Subtract(small);
return result.ToString();
}
private void button2_Click(object sender, EventArgs e)
{
if (button1.Text == "计时")
{
}
else
{
CreateViewItemMethodTow();
}
}
void T_Tick(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
RegistryKey Rkey = Registry.LocalMachine;
richTextBox1.Text = "";
Rkey = Rkey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0");
richTextBox1.Text += "处理器信息:\r\n" + Rkey.GetValue("ProcessorNameString").ToString().Replace(" ", "");
richTextBox1.Text += "\r\n计算机名:\r\n" + System.Windows.Forms.SystemInformation.ComputerName.ToString();
richTextBox1.Text += "\r\n用户系统中磁盘分区:\r\n";
for (int i = 0; i < Environment.GetLogicalDrives().Length; i++)
{
richTextBox1.Text += Environment.GetLogicalDrives()[i] + " ";
}
Rkey = Registry.LocalMachine;
//GetOsVersion()//取得操作系统版本
//GetMemInfo();//取得内存信息
//GetDriverInfo();//取得驱动器信息
//GetCpuInfo();//
MEMORYSTATUS1 vBuffer = new MEMORYSTATUS1();//实例化结构
GlobalMemoryStatus(ref vBuffer);//给此结构赋值
string useinfo = Convert.ToString(vBuffer.dwAvailPhys);//获得已用内存量
string allinfo = Convert.ToString(vBuffer.dwTotalPhys);//获得内存总量
//MessageBox.Show(useinfo + ":" + allinfo);
int infoAll, infoUsed;
infoAll = int.Parse(allinfo) / 1024/1024;
infoUsed = int.Parse(useinfo) / 1024/1024;
richTextBox1.Text += "\r\n已用内存容量:"+infoUsed.ToString() +"MB\r\n"+"系统内存总量:"+ infoAll.ToString()+"MB";
}
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult dr = MessageBox.Show("确认退出吗!", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr == DialogResult.Yes)
{
Close();
}
}
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);
private void 关于计时器软件ToolStripMenuItem_Click(object sender, EventArgs e)
{
string Helpmessage = "\r\n\t计时器软件\t\r\n\r\n\t创建日期:2010-1-6\t\r\n\r\n\t版本:1.0.13\t\r\n\r\n\t制作人QQ:327647506\t\t\r\n\t";
MessageBox.Show(Helpmessage,"版本信息");
}
}
}
我也在研究 刚才做了个程序 能抓到这些信息:
处理器信息:
Intel(R) Pentium(R) M processor 1.86GHz
计算机名:
PC2010010520FAI
用户系统中磁盘分区:
C:\ D:\ E:\ F:\ G:\ H:\
已用内存容量:972MB
系统内存总量:1918MB
其他的还在研究中
界面你根据代码应该能判断的出来 --------------------编程问答-------------------- 里面有一部分是计时器的代码 可以不看 --------------------编程问答-------------------- 突然发现 - - 光看代码 还真看不出来内容是什么 这样吧 你Q我 我把代码发给你 327647506
补充:.NET技术 , C#