`
seagle0128
  • 浏览: 44218 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

DotNet中获取系统信息(一)

    博客分类:
  • .NET
阅读更多
    前几天发了一张用C#获取系统信息的随笔,得到很多高人的指点,获益良多啊!
    这两天又抽空重构了一下,使用了singleton模式,并支持读取多CPU和多网卡的信息(未使用WMI),但没办法测试,不知道行不行!请高手指导!
    全过程都使用了TestDriver.NET(以前叫NUnitAddin)和ReSharper1.0,确实不错。尤其是ReSharper,重构功能比Together for vs.net 2.0的好用多了,其它功能也不错(所以抛弃了VAX和CodeRush,多了太耗资源)。
    代码较多,先发主要的:SystemInfomation.cs
using System;
using System.Net;
using Microsoft.Win32;

namespace SystemInfomation
{
    
public struct RunnedTime
    
{
        
public int hour;
        
public int minute;
        
public int second;
    }

    
    
/**//// <summary>
    
/// Summary description for GetInfo.
    
/// </summary>
    public class SystemInfomation
    
{    
        
private static SystemInfomation instance;
        
private const string processorKey = @"HARDWARE\DESCRIPTION\System\CentralProcessor\";
        
private const string biosKey = @"HARDWARE\DESCRIPTION\System";
        
private const string networkKey = @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\";
//        private static RegistryKey processor;
//        private static RegistryKey bios;
//        private static RegistryKey network;

        
/**//// <summary>
        
/// Get subkeys of processor registry.
        
/// </summary>
        
/// <returns>subKeys:stirng[]</returns>
        private string[] GetProcessorKey()
        
{
            
try
            
{
                RegistryKey processor 
= Registry.LocalMachine.OpenSubKey(processorKey);
                
return processor.GetSubKeyNames();
            }

            
catch (Exception e)
            
{
                
throw(e);
            }

        }


        
/**//// <summary>
        
/// Get bios registry.
        
/// </summary>
        
/// <returns>Registry</returns>
        private static RegistryKey GetBiosKey()
        
{
            
return Registry.LocalMachine.OpenSubKey(biosKey);
        }


        
/**//// <summary>
        
/// Get subkeys of netword card registry.
        
/// </summary>
        
/// <returns>subKeys:string[]</returns>
        private string[] GetNetworkKey()
        
{
            
try
            
{
                RegistryKey network 
= Registry.LocalMachine.OpenSubKey(networkKey);
                
return network.GetSubKeyNames();
            }

            
catch (Exception e)
            
{
                
throw(e);
            }

        }


        
public SystemInfomation()
        
{
            
//
            
// TODO: Add constructor logic here
            
//
        }


        
/**//// <summary>
        
/// Singleton Model
        
/// </summary>
        
/// <returns>instance:SystemInfo</returns>
        public SystemInfomation GetInstance()
        
{
            
lock (instance)
            
{
                
if (instance == null)
                
{
                    instance 
= new SystemInfomation();
                }

            }

            
return instance;
        }


        
/**//// <summary>
        
/// Get OS version.
        
/// </summary>
        
/// <returns>os_version:string</returns>
        public string GetOSVersion()
        
{
            
return System.Environment.OSVersion.ToString();
        }


        
/**//// <summary>
        
/// Get machine name
        
/// </summary>
        
/// <returns>machine_name:string</returns>
        public string GetMachineName()
        
{
            
return System.Environment.MachineName.ToString();
        }


        
/**//// <summary>
        
/// Get user name of using OS
        
/// </summary>
        
/// <returns>user_name:string</returns>
        public string GetUserName()
        
{
            
return System.Environment.UserName.ToString();
        }


        
/**//// <summary>
        
/// Get all logic drivers of machine
        
/// </summary>
        
/// <returns>logic_drivers:string[]</returns>
        public string[] GetLogicalDrives()
        
{
            
return System.Environment.GetLogicalDrives();
        }


        
/**//// <summary>
        
/// Get IP Address of machine
        
/// </summary>
        
/// <returns>ip_addr:IPAddress[]</returns>
        public IPAddress[] GetIPAddr()
        
{
            IPHostEntry ipEntry 
= Dns.GetHostByName(Dns.GetHostName());
            
return ipEntry.AddressList;
        }


        
/**//// <summary>
        
/// Get Domain name
        
/// </summary>
分享到:
评论

相关推荐

    dotnet 获取指定进程的输入命令行

    在.NET框架中,获取指定进程的输入命令行参数是一个常见的需求,这有助于开发者了解程序是如何启动的,或者在调试和监控系统时收集相关信息。本文将详细介绍如何在dotnet环境中实现这一功能,主要涉及Windows操作...

    dotnet-hosting、dotnet-sdk

    描述中提到的“dotnet-sdk-2.2.207-win-x64.exe”是针对Windows 64位系统的.NET Core 2.2 SDK版本,开发者可以下载并安装此文件来获取完整的开发环境。 在IIS中部署ASP.NET Core应用的步骤通常包括以下几点: 1. ...

    网上书店系统_dotnet电子商务系统源代码.7z

    总之,“网上书店系统_dotnet电子商务系统源代码”是一个宝贵的教育资源,无论你是新手还是老手,都能从中获得宝贵的经验和启示,提升你的.NET开发技能。在实践中学习,理论与实践相结合,才能真正掌握电子商务系统...

    dotnet-Facebook的GraphQL在NET中一个实现

    GraphQL是一种由Facebook开发并开源的查询语言,它为API设计提供了一种高效、灵活的方法,使得客户端能够精确地请求所需的数据,避免了过度获取或不足获取的问题。在.NET开发环境中,GraphQL的实现主要依赖于一些第...

    购物系统_dotnet电子商务系统源代码.rar

    【标题】中的“购物系统_dotnet电子商务系统源代码.rar”表明这是一个基于.NET技术开发的电子商务购物系统的源代码压缩包。.NET是微软公司推出的一种软件框架,它为开发者提供了构建Web应用、桌面应用以及移动应用的...

    dotnet手册.pdf

    - **dotnet trace**:收集应用程序的跟踪信息。 #### 应用程序部署 - **使用 CLI 发布应用**:通过 CLI 构建和打包应用程序。 - **使用 Visual Studio 部署应用**:利用 Visual Studio 的内置功能进行部署。 - **...

    电子商务系统BizIdea_dotnet电子商务系统源代码.rar

    【标题】"电子商务系统BizIdea_dotnet电子商务系统源代码.rar"揭示了这是一个基于.NET技术的电子商务解决方案,其中包含了BizIdea的源代码。BizIdea是一款专为中小企业设计的电子商务平台,它允许企业构建在线商店,...

    dotnet-jieba中文分词NETCore版

    dotnet-jieba是一个专门为.NET Core平台打造的中文分词库,它基于著名的Java版本的jieba分词器,为.NET开发者提供了强大的中文处理能力。本文将深入探讨dotnet-jieba的核心特性、工作原理以及如何在实际项目中应用。...

    dotnet C# 代码获取系统日志.rar

    本文档“dotnet C# 代码获取系统日志”将着重讲解如何利用C#编程来访问和处理操作系统日志。系统日志记录了系统运行时的事件,这对于调试、故障排查和维护系统健康状态至关重要。 C#提供了System.Diagnostics命名...

    网上商城购物系统_dotnet电子商务系统源代码.7z

    总结,网上商城购物系统_dotnet电子商务系统源代码为我们提供了一个深入学习 DotNet 开发电商系统的好教材。通过分析源代码,开发者可以了解如何构建高可用、高性能的电商应用,同时对 DotNet 框架有更深入的理解。...

    极速网店系统_dotnet电子商务系统源代码.rar

    【标题解析】:“极速网店系统_dotnet电子商务系统源代码.rar” 这个标题明确指出,这是一个基于.NET技术的电子商务网店系统。"极速"可能是指系统的响应速度或操作效率,暗示了该系统在处理用户交互和交易流程时具有...

    服饰行业网上商店系统_dotnet电子商务系统源代码.rar

    【标题】中的“服饰行业网上商店系统_dotnet电子商务系统源代码”表明这是一个基于.NET技术开发的,用于服饰行业的电子商务平台。.NET是一个由微软推出的开放源代码框架,用于构建Web应用、桌面应用和服务。该系统...

    商城系统_dotnet电子商务系统源代码.rar

    【标题】:“商城系统_dotnet电子商务系统源代码.rar”揭示了这是一个基于Microsoft的.NET框架开发的电子商务平台的源代码包。.NET框架是微软提供的一个用于构建、部署和运行应用程序和服务的开发平台,它支持多种...

    中国店长网店系统_dotnet电子商务系统源代码.rar

    中国店长网店系统是一款专为中小企业打造的电子商务平台,它利用 .NET Framework 提供的强大性能和灵活性,实现了商品管理、订单处理、用户管理、支付接口集成等一系列功能,为商家提供了一个完整的在线销售环境。...

    软件销售系统_dotnet电子商务系统源代码.rar

    【标题】中的“软件销售系统_dotnet电子商务系统源代码”表明这是一个基于.NET技术构建的电子商务系统,主要用于软件销售。.NET框架是由微软开发的一种开发平台,它提供了丰富的库和服务,用于构建各种类型的应用...

    dotnet-Scoop是一个Windows的命令行安装程序

    总的来说,dotnet-Scoop是.NET开发环境中的一个高效工具,它为Windows用户带来了便捷的命令行安装体验。无论是初学者还是经验丰富的开发者,掌握Scoop的使用都能显著提升工作效率。通过Scoop,你可以轻松地探索和...

    dotNET_Reactor4.9

    【标题】"dotNET_Reactor4.9"是一款强大的.NET代码保护和打包工具,由Eziriz公司开发。这款软件主要用于.NET Framework的应用程序,它提供了多种安全措施,旨在保护开发者们的知识产权,防止非法逆向工程、调试和...

    商城系统开源版仿当当网版_dotnet电子商务系统源代码.rar

    《深度剖析:商城系统开源版仿当当网版_dotnet电子商务系统源代码》 在数字化时代,电子商务系统已经成为企业不可或缺的工具,而开源版本更是开发者和创业者们的热门选择。本篇将深入探讨“商城系统开源版仿当当网...

    dotnet-Grpc扩展是一个基于GRPC的简单微服务框架

    总之,dotnet-Grpc扩展为.NET开发者提供了一个友好的工具,帮助他们在微服务架构中利用gRPC的强大能力,构建高效率、高性能的分布式系统。通过深入理解和使用这个框架,开发者可以更好地优化其Web应用的性能和可扩展...

    一个B2C电子商务全站源码_dotnet电子商务系统源代码.rar

    【标题】中的“一个B2C电子商务全站源码_dotnet电子商务系统源代码.rar”表明这是一个基于.NET技术的B2C(Business-to-Consumer)电子商务平台的完整源代码。B2C是商家直接面向消费者销售产品和服务的在线商业模式,...

Global site tag (gtag.js) - Google Analytics