|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Text;
|
|
|
using NetLibrary.Safety;
|
|
|
using NetLibrary.Common.Configuration;
|
|
|
using System.Management;
|
|
|
using System.Runtime.InteropServices;
|
|
|
using System.Drawing;
|
|
|
using System.Diagnostics;
|
|
|
|
|
|
namespace NetLibrary
|
|
|
{
|
|
|
public static class SystemInfo
|
|
|
{
|
|
|
[DllImport("winmm.dll", EntryPoint = "PlaySound", SetLastError = true)]
|
|
|
public static extern bool W32_PlaySound(string szSound, IntPtr hmod, UInt32 fdwSound);
|
|
|
|
|
|
[DllImport("winmm.dll", EntryPoint = "PlaySound", SetLastError = true)]
|
|
|
public static extern bool W32_PlaySound(byte[] szSound, IntPtr hmod, UInt32 fdwSound);
|
|
|
|
|
|
[DllImport("user32")]
|
|
|
public static extern long ExitWindowsEx(long uFlags, long dwReserved); //定义API变量
|
|
|
|
|
|
[DllImport("gdi32.dll")]
|
|
|
public static extern bool BitBlt(IntPtr hObject, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hObjectSource, int nXSrc, int nYSrc, int dwRop);
|
|
|
|
|
|
[DllImport("Kernel32.dll", SetLastError = true)]
|
|
|
public static extern int SetLocalTime(ref SystemTime lpSystemTime);
|
|
|
public struct SystemTime
|
|
|
{
|
|
|
public short wYear;
|
|
|
public short wMonth;
|
|
|
public short wDayOfWeek;
|
|
|
public short wDay;
|
|
|
public short wHour;
|
|
|
public short wMinute;
|
|
|
public short wSecond;
|
|
|
public short wMilliseconds;
|
|
|
}
|
|
|
|
|
|
public class SoundFlag
|
|
|
{
|
|
|
public const UInt32 SND_SYNC = 0x0000; // 同步
|
|
|
public const UInt32 SND_ASYNC = 0x0001; // 用异步方式播放声音,PlaySound函数在开始播放后立即返回。
|
|
|
public const UInt32 SND_NODEFAULT = 0x0002; // 静音
|
|
|
public const UInt32 SND_MEMORY = 0x0004; // 流文件
|
|
|
public const UInt32 SND_LOOP = 0x0008; // 循环
|
|
|
public const UInt32 SND_NOSTOP = 0x0010; // 不打断原来的声音播出并立即返回FALSE。
|
|
|
public const UInt32 SND_NOWAIT = 0x00002000; // 如果驱动程序正忙则函数就不播放声音并立即返回。
|
|
|
public const UInt32 SND_ALIAS = 0x00010000; // name is a registry alias
|
|
|
public const UInt32 SND_ALIAS_ID = 0x00110000; // alias is a predefined ID
|
|
|
public const UInt32 SND_FILENAME = 0x00020000; // name is file name
|
|
|
public const UInt32 SND_RESOURCE = 0x00040004; // name is resource name or atom
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region 获取CPU序列号
|
|
|
/// <summary>
|
|
|
/// 获取CPU序列号
|
|
|
/// </summary>
|
|
|
public static string GetProcessorID()
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
string cpuInfo = "";//cpu序列号
|
|
|
ManagementClass cimobject = new ManagementClass("Win32_Processor");
|
|
|
ManagementObjectCollection moc = cimobject.GetInstances();
|
|
|
foreach (ManagementObject mo in moc)
|
|
|
{
|
|
|
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
|
|
|
if (cpuInfo != "") { return cpuInfo; }
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
catch { return ""; }
|
|
|
return "";
|
|
|
}
|
|
|
#endregion
|
|
|
#region 获取网卡硬件地址
|
|
|
/// <summary>
|
|
|
/// 获取网卡硬件地址
|
|
|
/// </summary>
|
|
|
public static string GetNetworkCardID()
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
|
|
|
ManagementObjectCollection moc = mc.GetInstances();
|
|
|
foreach (ManagementObject mo in moc)
|
|
|
{
|
|
|
if ((bool)mo["IPEnabled"] == true)
|
|
|
return mo["MacAddress"].ToString();
|
|
|
mo.Dispose();
|
|
|
}
|
|
|
}
|
|
|
catch { return ""; }
|
|
|
return "";
|
|
|
}
|
|
|
#endregion
|
|
|
#region 获取硬盘ID
|
|
|
/// <summary>
|
|
|
/// 获取硬盘ID
|
|
|
/// </summary>
|
|
|
public static string GetDiskDriveID()
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
String HDid;
|
|
|
ManagementClass cimobject = new ManagementClass("Win32_DiskDrive");
|
|
|
ManagementObjectCollection moc = cimobject.GetInstances();
|
|
|
foreach (ManagementObject mo in moc)
|
|
|
{
|
|
|
HDid = (string)mo.Properties["Model"].Value;
|
|
|
return HDid;
|
|
|
}
|
|
|
}
|
|
|
catch { return ""; }
|
|
|
return "";
|
|
|
}
|
|
|
#endregion
|
|
|
#region 判断注册码是否正确
|
|
|
/// <summary>
|
|
|
/// 判断注册码是否正确
|
|
|
/// </summary>
|
|
|
public static bool IsRegisterCode(string filePath, string pubkey, string keyName)
|
|
|
{
|
|
|
CryptoPublic cp = new CryptoPublic();
|
|
|
//string pubkey = "<RSAKeyValue><Modulus>0zzXz1C4sKN0bWqWhMs8fp8EG+xI1o5f2xe/HztS65PPp2DGMpOfY9hyOuFW9Rkfm/aBeenzmBaqRhG0h5spc/0SRSbEWR76oP/3z/mDmWBBqsbz7iKDuEs08Zi34UogmRX2t5FpQmcVfjBNvWhYhEoDUDxutRvmNHB4P0/nluE=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
|
|
|
string jqm = ""; //返回CPU序列号
|
|
|
jqm = SystemInfo.GetProcessorID();
|
|
|
if (jqm == "") { jqm = SystemInfo.GetNetworkCardID(); }
|
|
|
if (jqm == "") { jqm = SystemInfo.GetDiskDriveID(); }
|
|
|
string zcm = ConfigurationSourceSection.LoadXml_Attribute(filePath, keyName); //返回注册码
|
|
|
if (cp.RsaVerifySignature(jqm, zcm, pubkey) == false) { return false; }
|
|
|
return true;
|
|
|
}
|
|
|
#endregion
|
|
|
#region 设置系统时间
|
|
|
public static void SetDateTime(DateTime dt)
|
|
|
{
|
|
|
SystemTime st = new SystemTime();
|
|
|
st.wYear = Convert.ToInt16(dt.Year);
|
|
|
st.wMonth = Convert.ToInt16(dt.Month);
|
|
|
st.wDay = Convert.ToInt16(dt.Day);
|
|
|
st.wHour = Convert.ToInt16(dt.Hour);
|
|
|
st.wMinute = Convert.ToInt16(dt.Minute);
|
|
|
st.wSecond = Convert.ToInt16(dt.Second);
|
|
|
st.wMilliseconds = Convert.ToInt16(dt.Millisecond);
|
|
|
st.wDayOfWeek = Convert.ToInt16(dt.DayOfWeek);
|
|
|
SetLocalTime(ref st);
|
|
|
}
|
|
|
#endregion
|
|
|
#region 根据颜色名称创建颜色
|
|
|
public static Color CreateColor(string ColorName)
|
|
|
{
|
|
|
switch (ColorName)
|
|
|
{
|
|
|
case "AliceBlue":
|
|
|
return Color.AliceBlue;
|
|
|
case "AntiqueWhite":
|
|
|
return Color.AntiqueWhite;
|
|
|
case "Aqua":
|
|
|
return Color.Aqua;
|
|
|
case "Aquamarine":
|
|
|
return Color.Aquamarine;
|
|
|
case "Azure":
|
|
|
return Color.Azure;
|
|
|
case "Beige":
|
|
|
return Color.Beige;
|
|
|
case "Bisque":
|
|
|
return Color.Bisque;
|
|
|
case "Black":
|
|
|
return Color.Black;
|
|
|
case "BlanchedAlmond":
|
|
|
return Color.BlanchedAlmond;
|
|
|
case "Blue":
|
|
|
return Color.Blue;
|
|
|
case "BlueViolet":
|
|
|
return Color.BlueViolet;
|
|
|
case "Brown":
|
|
|
return Color.Brown;
|
|
|
case "BurlyWood":
|
|
|
return Color.BurlyWood;
|
|
|
case "CadetBlue":
|
|
|
return Color.CadetBlue;
|
|
|
case "Chartreuse":
|
|
|
return Color.Chartreuse;
|
|
|
case "Chocolate":
|
|
|
return Color.Chocolate;
|
|
|
case "Coral":
|
|
|
return Color.Coral;
|
|
|
case "CornflowerBlue":
|
|
|
return Color.CornflowerBlue;
|
|
|
case "Cornsilk":
|
|
|
return Color.Cornsilk;
|
|
|
case "Crimson":
|
|
|
return Color.Crimson;
|
|
|
case "Cyan":
|
|
|
return Color.Cyan;
|
|
|
case "DarkBlue":
|
|
|
return Color.DarkBlue;
|
|
|
case "DarkCyan":
|
|
|
return Color.DarkCyan;
|
|
|
case "DarkGoldenrod":
|
|
|
return Color.DarkGoldenrod;
|
|
|
case "DarkGray":
|
|
|
return Color.DarkGray;
|
|
|
case "DarkGreen":
|
|
|
return Color.DarkGreen;
|
|
|
case "DarkKhaki":
|
|
|
return Color.DarkKhaki;
|
|
|
case "DarkMagenta":
|
|
|
return Color.DarkMagenta;
|
|
|
case "DarkOliveGreen":
|
|
|
return Color.DarkOliveGreen;
|
|
|
case "DarkOrange":
|
|
|
return Color.DarkOrange;
|
|
|
case "DarkOrchid":
|
|
|
return Color.DarkOrchid;
|
|
|
case "DarkRed":
|
|
|
return Color.DarkRed;
|
|
|
case "DarkSalmon":
|
|
|
return Color.DarkSalmon;
|
|
|
case "DarkSeaGreen":
|
|
|
return Color.DarkSeaGreen;
|
|
|
case "DarkSlateBlue":
|
|
|
return Color.DarkSlateBlue;
|
|
|
case "DarkSlateGray":
|
|
|
return Color.DarkSlateGray;
|
|
|
case "DarkTurquoise":
|
|
|
return Color.DarkTurquoise;
|
|
|
case "DarkViolet":
|
|
|
return Color.DarkViolet;
|
|
|
case "DeepPink":
|
|
|
return Color.DeepPink;
|
|
|
case "DeepSkyBlue":
|
|
|
return Color.DeepSkyBlue;
|
|
|
case "DimGray":
|
|
|
return Color.DimGray;
|
|
|
case "DodgerBlue":
|
|
|
return Color.DodgerBlue;
|
|
|
case "Firebrick":
|
|
|
return Color.Firebrick;
|
|
|
case "FloralWhite":
|
|
|
return Color.FloralWhite;
|
|
|
case "ForestGreen":
|
|
|
return Color.ForestGreen;
|
|
|
case "Fuchsia":
|
|
|
return Color.Fuchsia;
|
|
|
case "Gainsboro":
|
|
|
return Color.Gainsboro;
|
|
|
case "GhostWhite":
|
|
|
return Color.GhostWhite;
|
|
|
case "Gold":
|
|
|
return Color.Gold;
|
|
|
case "Goldenrod":
|
|
|
return Color.Goldenrod;
|
|
|
case "Gray":
|
|
|
return Color.Gray;
|
|
|
case "Green":
|
|
|
return Color.Green;
|
|
|
case "GreenYellow":
|
|
|
return Color.GreenYellow;
|
|
|
case "Honeydew":
|
|
|
return Color.Honeydew;
|
|
|
case "HotPink":
|
|
|
return Color.HotPink;
|
|
|
case "IndianRed":
|
|
|
return Color.IndianRed;
|
|
|
case "Indigo":
|
|
|
return Color.Indigo;
|
|
|
case "Ivory":
|
|
|
return Color.Ivory;
|
|
|
case "Khaki":
|
|
|
return Color.Khaki;
|
|
|
case "Lavender":
|
|
|
return Color.Lavender;
|
|
|
case "LavenderBlush":
|
|
|
return Color.LavenderBlush;
|
|
|
case "LawnGreen":
|
|
|
return Color.LawnGreen;
|
|
|
case "LemonChiffon":
|
|
|
return Color.LemonChiffon;
|
|
|
case "LightBlue":
|
|
|
return Color.LightBlue;
|
|
|
case "LightCoral":
|
|
|
return Color.LightCoral;
|
|
|
case "LightCyan":
|
|
|
return Color.LightCyan;
|
|
|
case "LightGoldenrodYellow":
|
|
|
return Color.LightGoldenrodYellow;
|
|
|
case "LightGray":
|
|
|
return Color.LightGray;
|
|
|
case "LightGreen":
|
|
|
return Color.LightGreen;
|
|
|
case "LightPink":
|
|
|
return Color.LightPink;
|
|
|
case "LightSalmon":
|
|
|
return Color.LightSalmon;
|
|
|
case "LightSeaGreen":
|
|
|
return Color.LightSeaGreen;
|
|
|
case "LightSkyBlue":
|
|
|
return Color.LightSkyBlue;
|
|
|
case "LightSlateGray":
|
|
|
return Color.LightSlateGray;
|
|
|
case "LightSteelBlue":
|
|
|
return Color.LightSteelBlue;
|
|
|
case "LightYellow":
|
|
|
return Color.LightYellow;
|
|
|
case "Lime":
|
|
|
return Color.Lime;
|
|
|
case "LimeGreen":
|
|
|
return Color.LimeGreen;
|
|
|
case "Linen":
|
|
|
return Color.Linen;
|
|
|
case "Magenta":
|
|
|
return Color.Magenta;
|
|
|
case "Maroon":
|
|
|
return Color.Maroon;
|
|
|
case "MediumAquamarine":
|
|
|
return Color.MediumAquamarine;
|
|
|
case "MediumBlue":
|
|
|
return Color.MediumBlue;
|
|
|
case "MediumOrchid":
|
|
|
return Color.MediumOrchid;
|
|
|
case "MediumPurple":
|
|
|
return Color.MediumPurple;
|
|
|
case "MediumSeaGreen":
|
|
|
return Color.MediumSeaGreen;
|
|
|
case "MediumSlateBlue":
|
|
|
return Color.MediumSlateBlue;
|
|
|
case "MediumSpringGreen":
|
|
|
return Color.MediumSpringGreen;
|
|
|
case "MediumTurquoise":
|
|
|
return Color.MediumTurquoise;
|
|
|
case "MediumVioletRed":
|
|
|
return Color.MediumVioletRed;
|
|
|
case "MidnightBlue":
|
|
|
return Color.MidnightBlue;
|
|
|
case "MintCream":
|
|
|
return Color.MintCream;
|
|
|
case "MistyRose":
|
|
|
return Color.MistyRose;
|
|
|
case "Moccasin":
|
|
|
return Color.Moccasin;
|
|
|
case "NavajoWhite":
|
|
|
return Color.NavajoWhite;
|
|
|
case "Navy":
|
|
|
return Color.Navy;
|
|
|
case "OldLace":
|
|
|
return Color.OldLace;
|
|
|
case "Olive":
|
|
|
return Color.Olive;
|
|
|
case "OliveDrab":
|
|
|
return Color.OliveDrab;
|
|
|
case "Orange":
|
|
|
return Color.Orange;
|
|
|
case "OrangeRed":
|
|
|
return Color.OrangeRed;
|
|
|
case "Orchid":
|
|
|
return Color.Orchid;
|
|
|
case "PaleGoldenrod":
|
|
|
return Color.PaleGoldenrod;
|
|
|
case "PaleGreen":
|
|
|
return Color.PaleGreen;
|
|
|
case "PaleTurquoise":
|
|
|
return Color.PaleTurquoise;
|
|
|
case "PaleVioletRed":
|
|
|
return Color.PaleVioletRed;
|
|
|
case "PapayaWhip":
|
|
|
return Color.PapayaWhip;
|
|
|
case "PeachPuff":
|
|
|
return Color.PeachPuff;
|
|
|
case "Peru":
|
|
|
return Color.Peru;
|
|
|
case "Pink":
|
|
|
return Color.Pink;
|
|
|
case "Plum":
|
|
|
return Color.Plum;
|
|
|
case "PowderBlue":
|
|
|
return Color.PowderBlue;
|
|
|
case "Purple":
|
|
|
return Color.Purple;
|
|
|
case "Red":
|
|
|
return Color.Red;
|
|
|
case "RosyBrown":
|
|
|
return Color.RosyBrown;
|
|
|
case "SaddleBrown":
|
|
|
return Color.SaddleBrown;
|
|
|
case "Salmon":
|
|
|
return Color.Salmon;
|
|
|
case "SandyBrown":
|
|
|
return Color.SandyBrown;
|
|
|
case "SeaGreen":
|
|
|
return Color.SeaGreen;
|
|
|
case "SeaShell":
|
|
|
return Color.SeaShell;
|
|
|
case "Sienna":
|
|
|
return Color.Sienna;
|
|
|
case "Silver":
|
|
|
return Color.Silver;
|
|
|
case "SkyBlue":
|
|
|
return Color.SkyBlue;
|
|
|
case "SlateBlue":
|
|
|
return Color.SlateBlue;
|
|
|
case "SlateGray":
|
|
|
return Color.SlateGray;
|
|
|
case "Snow":
|
|
|
return Color.Snow;
|
|
|
case "SpringGreen":
|
|
|
return Color.SpringGreen;
|
|
|
case "SteelBlue":
|
|
|
return Color.SteelBlue;
|
|
|
case "Tan":
|
|
|
return Color.Tan;
|
|
|
case "Teal":
|
|
|
return Color.Teal;
|
|
|
case "Thistle":
|
|
|
return Color.Thistle;
|
|
|
case "Tomato":
|
|
|
return Color.Tomato;
|
|
|
case "Transparent":
|
|
|
return Color.Transparent;
|
|
|
case "Turquoise":
|
|
|
return Color.Turquoise;
|
|
|
case "Violet":
|
|
|
return Color.Violet;
|
|
|
case "Wheat":
|
|
|
return Color.Wheat;
|
|
|
case "White":
|
|
|
return Color.White;
|
|
|
case "WhiteSmoke":
|
|
|
return Color.WhiteSmoke;
|
|
|
case "Yellow":
|
|
|
return Color.Yellow;
|
|
|
case "YellowGreen":
|
|
|
return Color.YellowGreen;
|
|
|
default:
|
|
|
return Color.Black;
|
|
|
}
|
|
|
}
|
|
|
#endregion
|
|
|
#region 像素转毫米
|
|
|
public static int PxConvertMm(int Pixel)
|
|
|
{
|
|
|
ManagementClass mc = new ManagementClass("Win32_DesktopMonitor");
|
|
|
ManagementObjectCollection moc = mc.GetInstances();
|
|
|
int PixelsPerXLogicalInch = 0; // dpi for x
|
|
|
//int PixelsPerYLogicalInch = 0; // dpi for y
|
|
|
foreach (ManagementObject each in moc)
|
|
|
{
|
|
|
PixelsPerXLogicalInch = int.Parse((each.Properties["PixelsPerXLogicalInch"].Value.ToString()));
|
|
|
//PixelsPerYLogicalInch = int.Parse((each.Properties["PixelsPerYLogicalInch"].Value.ToString()));
|
|
|
}
|
|
|
int a =Convert.ToInt32(Pixel / PixelsPerXLogicalInch * 25.4);
|
|
|
return a;
|
|
|
}
|
|
|
#endregion
|
|
|
#region 读取当前文件夹路径
|
|
|
public static string AppPath()
|
|
|
{
|
|
|
string path = AppDomain.CurrentDomain.BaseDirectory;
|
|
|
path = path.Replace("\\", "/");
|
|
|
return path;
|
|
|
}
|
|
|
#endregion
|
|
|
#region 播放声音文件
|
|
|
public static void PlayWav(string FileName)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
W32_PlaySound(FileName, IntPtr.Zero, SoundFlag.SND_ASYNC + SoundFlag.SND_FILENAME);
|
|
|
}
|
|
|
catch { }
|
|
|
}
|
|
|
#endregion
|
|
|
#region 关机
|
|
|
public static void CloseWindows()
|
|
|
{
|
|
|
Process MyProcess = new Process();
|
|
|
//设定程序名
|
|
|
MyProcess.StartInfo.FileName = "cmd.exe";
|
|
|
//关闭Shell的使用
|
|
|
MyProcess.StartInfo.UseShellExecute = false;
|
|
|
//重定向标准输入
|
|
|
MyProcess.StartInfo.RedirectStandardInput = true;
|
|
|
//重定向标准输出
|
|
|
MyProcess.StartInfo.RedirectStandardOutput = true;
|
|
|
//重定向错误输出
|
|
|
MyProcess.StartInfo.RedirectStandardError = true;
|
|
|
//设置不显示窗口
|
|
|
MyProcess.StartInfo.CreateNoWindow = true;
|
|
|
//执行VER命令
|
|
|
MyProcess.Start();
|
|
|
MyProcess.StandardInput.WriteLine("shutdown -f -s -t 1");
|
|
|
MyProcess.StandardInput.WriteLine("exit");
|
|
|
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
}
|