系统环境相关方法 - SysInfoSlowXFunctions +

2017-02-26 16:02:31  访问(1978) 赞(0) 踩(0)

using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using System.Web.UI.WebControls;
using System.Xml;
using SlowX.Functions.Common;

using System.Web;

namespace SlowX.Functions.Functions
{
    /// <summary>
    /// 系统环境相关方法 - SysInfoSlowXFunctions +
    /// </summary>
    public class SysInfoSlowXFunctions 
    {

        #region Enum

        /// <summary>
        /// 系统环境
        /// </summary>
        public enum EmSysInfo
        {

            /// <summary>
            /// 进程ID
            /// </summary>
            进程ID,
            /// <summary>
            /// 进程名
            /// </summary>
            进程名,
            /// <summary>
            /// 脚本超时时间
            /// </summary>
            脚本超时时间,
            /// <summary>
            /// 系统语言
            /// </summary>
            系统语言,
            /// <summary>
            /// 操作系统
            /// </summary>
            操作系统,
            /// <summary>
            /// asp.net运行库版本
            /// </summary>
            ASPNET运行库版本,
            /// <summary>
            /// IE版本
            /// </summary>
            IE版本,
            /// <summary>
            /// 已启动时间
            /// </summary>
            已启动时间,
            /// <summary>
            /// CPU数量
            /// </summary>
            CPU数量,
            /// <summary>
            /// CPU类型
            /// </summary>
            CPU类型,
            /// <summary>
            /// ASP.NET所占内存
            /// </summary>
            ASPNET所占内存
        }

        #endregion Enum
     

        /// <summary>
        /// 数组
        /// </summary>
        public readonly static EmSysInfo[] EmArray = new EmSysInfo[]
        {
            EmSysInfo.进程ID,
            EmSysInfo.进程名,
            EmSysInfo.脚本超时时间,
            EmSysInfo.系统语言,
            EmSysInfo.操作系统,
            EmSysInfo.ASPNET运行库版本,
            EmSysInfo.IE版本,
            EmSysInfo.已启动时间,
            EmSysInfo.CPU数量,
            EmSysInfo.CPU类型,
            EmSysInfo.ASPNET所占内存
        };

        /// <summary>
        /// 获得方法名
        /// </summary>
        /// <param name="em"></param>
        /// <returns></returns>
        public static string GetMethodName(EmSysInfo em)
        {
            switch (em)
            {
                case EmSysInfo.进程ID:
                    return "CurrentProcessId";
                case EmSysInfo.进程名:
                    return "CurrentProcessName";
                case EmSysInfo.脚本超时时间:
                    return "ServerScriptTimeout";
                case EmSysInfo.系统语言:
                    return "SystemLanguage";
                case EmSysInfo.操作系统:
                    return "EnvironmentOSVersion";
                case EmSysInfo.ASPNET运行库版本:
                    return "AspNetEnvironmentVersion";
                case EmSysInfo.IE版本:
                    return "IEVersion";
                case EmSysInfo.已启动时间:
                    return "EnvironmentTickCount";
                case EmSysInfo.CPU数量:
                    return "NumberOfProcessors";
                case EmSysInfo.CPU类型:
                    return "ProcessorIdentifier";
                case EmSysInfo.ASPNET所占内存:
                    return "AspNetWorkingSet64";
                default:
                    throw new Exception(em.ToString() + "未实现。");
            }

        }

        /// <summary>
        /// 获得系统信息
        /// </summary>
        /// <param name="em"></param>
        /// <returns></returns>
        public static string GetInfo(EmSysInfo em)
        {
            switch (em)
            {
                case EmSysInfo.进程ID:
                    return CurrentProcessId();
                case EmSysInfo.进程名:
                    return CurrentProcessName();
                case EmSysInfo.脚本超时时间:
                    return ServerScriptTimeout();
                case EmSysInfo.系统语言:
                    return SystemLanguage();
                case EmSysInfo.操作系统:
                    return EnvironmentOSVersion();
                case EmSysInfo.ASPNET运行库版本:
                    return AspNetEnvironmentVersion();
                case EmSysInfo.IE版本:
                    return IEVersion();
                case EmSysInfo.已启动时间:
                    return EnvironmentTickCount();
                case EmSysInfo.CPU数量:
                    return NumberOfProcessors();
                case EmSysInfo.CPU类型:
                    return ProcessorIdentifier();
                case EmSysInfo.ASPNET所占内存:
                    return AspNetWorkingSet64(); 
                default:
                    throw new Exception(em.ToString() + "未实现。");
            }

        }

        /// <summary>
        /// 获得进程ID
        /// </summary>
        /// <returns></returns>
        public static string CurrentProcessId()
        {

            // 获得进程相关的信息 //
            System.Diagnostics.Process currentProcess 
                = 
                System.Diagnostics.Process.GetCurrentProcess();

            return currentProcess.Id.ToString();
        }

        /// <summary>
        /// 获得进程名
        /// </summary>
        /// <returns></returns>
        public static string CurrentProcessName()
        {

            // 获得进程相关的信息 //
            System.Diagnostics.Process currentProcess
                =
                System.Diagnostics.Process.GetCurrentProcess();

            return currentProcess.ProcessName;
        }


        /// <summary>
        /// 脚本超时时间
        /// </summary>
        /// <returns></returns>
        public static string ServerScriptTimeout()
        {
            return ((HttpContext.Current.Server.ScriptTimeout / 1000) / 1000).ToString() + " 分钟";
        }

        /// <summary>
        /// 系统语言
        /// </summary>
        /// <returns></returns>
        public static string SystemLanguage()
        {
            return System.Globalization.CultureInfo.InstalledUICulture.EnglishName;
        }

        /// <summary>
        /// 操作系统
        /// </summary>
        /// <returns></returns>
        public static string EnvironmentOSVersion()
        {
            return Environment.OSVersion.ToString();
        }


        /// <summary>
        /// asp.net运行库版本
        /// </summary>
        /// <returns></returns>
        public static string AspNetEnvironmentVersion()
        {
            return string.Concat(new object[] { Environment.Version.Major, ".", Environment.Version.Minor, Environment.Version.Build, ".", Environment.Version.Revision });
        }


        /// <summary>
        /// IE版本
        /// </summary>
        /// <returns></returns>
        public static string IEVersion()
        {

            Microsoft.Win32.RegistryKey key
                =
                Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Version Vector");

            return key.GetValue("IE", "未检测到").ToString();
        }



        /// <summary>
        /// 已启动时间
        /// </summary>
        /// <returns></returns>
        public static string EnvironmentTickCount()
        {
            return ((Environment.TickCount / 0x3e8) / 60).ToString() + "分钟";
        }



        /// <summary>
        /// CPU数量
        /// </summary>
        /// <returns></returns>
        public static string NumberOfProcessors()
        {
            return Environment.GetEnvironmentVariable("NUMBER_OF_PROCESSORS").ToString() + "个";
        }


        /// <summary>
        /// CPU类型
        /// </summary>
        /// <returns></returns>
        public static string ProcessorIdentifier()
        {
            return Environment.GetEnvironmentVariable("PROCESSOR_IDENTIFIER").ToString();
        }

        /// <summary>
        /// ASP.NET所占内存
        /// </summary>
        /// <returns></returns>
        public static string AspNetWorkingSet64()
        {
            return ((Double)System.Diagnostics.Process.GetCurrentProcess().WorkingSet64 / 1048576).ToString("N2") + "M";
        }


        /// <summary>
        /// 是否是网站程序
        /// </summary>
        /// <returns></returns>
        public static bool IsWebSite()
        {
            System.Diagnostics.Process process 
                = 
                System.Diagnostics.Process.GetCurrentProcess();

            string processName = process.ProcessName;
 
            processName = processName.Trim().ToLower();

            if (processName == "")
                return false;

            switch (processName)
            {
                case "webdev.webserver":
                case "w3wp":
                    return true;
                default:
                    return false;
            }
        }

    }
}


标签:系统环境相关方法 - SysInfoSlowXFunctions + 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)
 
  ┈全部┈  
 
(显示默认分类)