当前位置:编程学习 > C#/ASP.NET >>

急需抓取主要硬件信息,像鲁大师一样

急需抓取系统主要硬件信息,像鲁大师那样,如果实现的好,可以出一些费用酬谢(直接联系我谈价也行),着急啊! 

我的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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,