616 lines
20 KiB
C#
616 lines
20 KiB
C#
// VBConversions Note: VB project level imports
|
||
using System.Collections.Generic;
|
||
using System;
|
||
using System.Drawing;
|
||
using System.Diagnostics;
|
||
using System.Data;
|
||
using Microsoft.VisualBasic;
|
||
using System.Collections;
|
||
using System.Windows.Forms;
|
||
// End of VB project level imports
|
||
|
||
using System.Data.OleDb;
|
||
using System.IO;
|
||
using System.Runtime.InteropServices;
|
||
using System.Management;
|
||
using System.Net;
|
||
|
||
|
||
//Imports C1.Win.C1FlexGrid
|
||
|
||
|
||
namespace NGToolsPC
|
||
{
|
||
public class mldPublic
|
||
{
|
||
//Public MyDocPath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\我的输差报表"
|
||
//public static DateTime ReportDate;
|
||
//public static string CurrentUser;
|
||
//public static string strDepartment;
|
||
|
||
//Public strConnServer As String = "Data Source=jl;User ID=jlk;Password=jl4874412;Unicode=True"
|
||
//Public strConOracle As String = "Data Source=jl;User ID=atsys;Password=123;Unicode=True;Pooling=true"
|
||
//Public strConCNG As String = " Data Source=10.75.166.6;Initial Catalog=scfx;;User ID=scfx;Password=hhysbyj;Pooling=true"
|
||
public static string AppPath = Application.StartupPath;
|
||
//Public xmlPath As String = AppPath & "\计量点.xml"
|
||
public static string DataPath = AppPath + "\\NGData.MDB";
|
||
public static string strConCNG = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + AppPath + "\\NGData.MDB" + ";Persist Security Info=True;Jet OLEDB:Database Password=";
|
||
public static string strJdyXm = "";
|
||
public static string strDog = "123456789";
|
||
public static bool RegVaue = false;
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
//此类用于获取当前主机的相关信息
|
||
public class MachineInfo
|
||
{
|
||
//用法示例
|
||
public string example()
|
||
{
|
||
string Info = "";
|
||
MachineInfo info = MachineInfo.I(); //获取主机的对象信息
|
||
|
||
|
||
//Info = "\r\n主机名:" + Dns.GetHostName(); //获取主机名称
|
||
//Info += "\r\n系统类型:" + info.GetSystemType();
|
||
//Info += "\r\n物理内存:" + info.GetPhysicalMemory();
|
||
|
||
|
||
//Info += "\r\n\r\n本地IP:";
|
||
//string[] LocalIp = info.GetLocalIpAddress();
|
||
//foreach (string ip in LocalIp) Info += "\r\n" + ip;
|
||
|
||
|
||
//Info += "\r\n\r\n外网IP:";
|
||
//string[] ExternalIp = info.GetExtenalIpAddress();
|
||
//foreach (string ip in ExternalIp) Info += "\r\n" + ip;
|
||
|
||
|
||
//Info += "\r\n\r\nMAC:";
|
||
//Info += "\r\n" + info.GetNetCardMACAddress();
|
||
////Info += "\r\n" + info.GetMacAddress(LocalIp[0]);
|
||
|
||
|
||
//Info += "\r\n";
|
||
Info += "CPU序列号:" + info.GetCPUSerialNumber();
|
||
//Info += "\r\nCPU编号:" + info.GetCPUID();
|
||
//Info += "\r\nCPU版本信息:" + info.GetCPUVersion();
|
||
//Info += "\r\nCPU名称信息:" + info.GetCPUName();
|
||
//Info += "\r\nCPU制造厂商:" + info.GetCPUManufacturer();
|
||
//Info += "\r\n主板制造厂商:" + info.GetBoardManufacturer();
|
||
|
||
|
||
//Info += "\r\n主板序列号:" + info.GetBIOSSerialNumber();
|
||
Info += "---硬盘序列号:" + info.GetHardDiskSerialNumber();
|
||
//Info += "\r\n显卡PNPDeviceID:\r\n" + info.GetVideoPNPID();
|
||
//Info += "\r\n声卡PNPDeviceID:\r\n" + info.GetSoundPNPID();
|
||
|
||
|
||
return Info;
|
||
}
|
||
|
||
|
||
|
||
|
||
static MachineInfo Instance;
|
||
|
||
|
||
/// <summary>
|
||
/// 获取当前类对象的一个实例
|
||
/// </summary>
|
||
public static MachineInfo I()
|
||
{
|
||
if (Instance == null) Instance = new MachineInfo();
|
||
return Instance;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取本地ip地址,多个ip
|
||
/// </summary>
|
||
public String[] GetLocalIpAddress()
|
||
{
|
||
string hostName = Dns.GetHostName(); //获取主机名称
|
||
IPAddress[] addresses = Dns.GetHostAddresses(hostName); //解析主机IP地址
|
||
|
||
|
||
string[] IP = new string[addresses.Length]; //转换为字符串形式
|
||
for (int i = 0; i < addresses.Length; i++) IP[i] = addresses[i].ToString();
|
||
|
||
|
||
return IP;
|
||
}
|
||
|
||
|
||
|
||
|
||
//从网站"http://1111.ip138.com/ic.asp",获取本机外网ip地址信息串
|
||
//"<html>\r\n<head>\r\n<meta http-equiv=\"content-type\" content=\"text/html; charset=gb2312\">\r\n<title>
|
||
//您的IP地址 </title>\r\n</head>\r\n<body style=\"margin:0px\"><center>您的IP是:[218.104.71.178] 来自:安徽省合肥市 联通</center></body></html>"
|
||
|
||
|
||
/// <summary>
|
||
/// 获取外网ip地址
|
||
/// </summary>
|
||
public string[] GetExtenalIpAddress()
|
||
{
|
||
string[] IP = new string[] { "未获取到外网ip", "" };
|
||
|
||
|
||
string address = "http://1111.ip138.com/ic.asp";
|
||
string str = GetWebStr(address);
|
||
|
||
|
||
try
|
||
{
|
||
//提取外网ip数据 [218.104.71.178]
|
||
int i1 = str.IndexOf("[") + 1, i2 = str.IndexOf("]");
|
||
IP[0] = str.Substring(i1, i2 - i1);
|
||
|
||
|
||
//提取网址说明信息 "来自:安徽省合肥市 联通"
|
||
i1 = i2 + 2; i2 = str.IndexOf("<", i1);
|
||
IP[1] = str.Substring(i1, i2 - i1);
|
||
}
|
||
catch (Exception) { }
|
||
|
||
|
||
return IP;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 获取网址address的返回的文本串数据
|
||
/// </summary>
|
||
public string GetWebStr(string address)
|
||
{
|
||
string str = "";
|
||
try
|
||
{
|
||
//从网址中获取本机ip数据
|
||
System.Net.WebClient client = new System.Net.WebClient();
|
||
client.Encoding = System.Text.Encoding.Default;
|
||
str = client.DownloadString(address);
|
||
client.Dispose();
|
||
}
|
||
catch (Exception) { }
|
||
|
||
|
||
return str;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 获取本机的MAC; //在项目-》添加引用....里面引用System.Management
|
||
/// </summary>
|
||
public string GetLocalMac()
|
||
{
|
||
string mac = null;
|
||
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
|
||
ManagementObjectCollection queryCollection = query.Get();
|
||
foreach (ManagementObject mo in queryCollection)
|
||
{
|
||
if (mo["IPEnabled"].ToString() == "True")
|
||
mac = mo["MacAddress"].ToString();
|
||
}
|
||
return (mac);
|
||
}
|
||
|
||
|
||
//只能获取同网段的远程主机MAC地址. 因为在标准网络协议下,ARP包是不能跨网段传输的,故想通过ARP协议是无法查询跨网段设备MAC地址的。
|
||
[DllImport("Iphlpapi.dll")]
|
||
private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int32 length);
|
||
[DllImport("Ws2_32.dll")]
|
||
private static extern Int32 inet_addr(string ip);
|
||
/// <summary>
|
||
/// 获取ip对应的MAC地址
|
||
/// </summary>
|
||
public string GetMacAddress(string ip)
|
||
{
|
||
Int32 ldest = inet_addr(ip); //目的ip
|
||
Int32 lhost = inet_addr("127.0.0.1"); //本地ip
|
||
|
||
|
||
try
|
||
{
|
||
Int64 macinfo = new Int64();
|
||
Int32 len = 6;
|
||
int res = SendARP(ldest, 0, ref macinfo, ref len); //使用系统API接口发送ARP请求,解析ip对应的Mac地址
|
||
return Convert.ToString(macinfo, 16);
|
||
}
|
||
catch (Exception err)
|
||
{
|
||
Console.WriteLine("Error:{0}", err.Message);
|
||
}
|
||
return "获取Mac地址失败";
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 获取主板序列号
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public string GetBIOSSerialNumber()
|
||
{
|
||
try
|
||
{
|
||
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_BIOS");
|
||
string sBIOSSerialNumber = "";
|
||
foreach (ManagementObject mo in searcher.Get())
|
||
{
|
||
sBIOSSerialNumber = mo["SerialNumber"].ToString().Trim();
|
||
}
|
||
return sBIOSSerialNumber;
|
||
}
|
||
catch
|
||
{
|
||
return "";
|
||
}
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 获取CPU序列号
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public string GetCPUSerialNumber()
|
||
{
|
||
try
|
||
{
|
||
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * From Win32_Processor");
|
||
string sCPUSerialNumber = "";
|
||
foreach (ManagementObject mo in searcher.Get())
|
||
{
|
||
sCPUSerialNumber = mo["ProcessorId"].ToString().Trim();
|
||
}
|
||
return sCPUSerialNumber;
|
||
}
|
||
catch
|
||
{
|
||
return "";
|
||
}
|
||
}
|
||
//获取硬盘序列号
|
||
public string GetHardDiskSerialNumber()
|
||
{
|
||
try
|
||
{
|
||
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
|
||
string sHardDiskSerialNumber = "";
|
||
foreach (ManagementObject mo in searcher.Get())
|
||
{
|
||
sHardDiskSerialNumber = mo["SerialNumber"].ToString().Trim();
|
||
break;
|
||
}
|
||
return sHardDiskSerialNumber;
|
||
}
|
||
catch
|
||
{
|
||
return "";
|
||
}
|
||
}
|
||
|
||
|
||
//获取网卡地址
|
||
public string GetNetCardMACAddress()
|
||
{
|
||
try
|
||
{
|
||
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))");
|
||
string NetCardMACAddress = "";
|
||
foreach (ManagementObject mo in searcher.Get())
|
||
{
|
||
NetCardMACAddress = mo["MACAddress"].ToString().Trim();
|
||
}
|
||
return NetCardMACAddress;
|
||
}
|
||
catch
|
||
{
|
||
return "";
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 获得CPU编号
|
||
/// </summary>
|
||
public string GetCPUID()
|
||
{
|
||
string cpuid = "";
|
||
ManagementClass mc = new ManagementClass("Win32_Processor");
|
||
ManagementObjectCollection moc = mc.GetInstances();
|
||
foreach (ManagementObject mo in moc)
|
||
{
|
||
cpuid = mo.Properties["ProcessorId"].Value.ToString();
|
||
}
|
||
return cpuid;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 获取硬盘序列号
|
||
/// </summary>
|
||
public string GetDiskSerialNumber()
|
||
{
|
||
//这种模式在插入一个U盘后可能会有不同的结果,如插入我的手机时
|
||
String HDid = "";
|
||
ManagementClass mc = new ManagementClass("Win32_DiskDrive");
|
||
ManagementObjectCollection moc = mc.GetInstances();
|
||
foreach (ManagementObject mo in moc)
|
||
{
|
||
HDid = (string)mo.Properties["Model"].Value;//SerialNumber
|
||
break;//这名话解决有多个物理盘时产生的问题,只取第一个物理硬盘
|
||
}
|
||
return HDid;
|
||
|
||
|
||
/*ManagementClass mc = new ManagementClass("Win32_PhysicalMedia");
|
||
ManagementObjectCollection moc = mc.GetInstances();
|
||
string str = "";
|
||
foreach (ManagementObject mo in moc)
|
||
{
|
||
str = mo.Properties["SerialNumber"].Value.ToString();
|
||
break;
|
||
}
|
||
return str;*/
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 获取网卡硬件地址
|
||
/// </summary>
|
||
public string GetMacAddress()
|
||
{
|
||
string mac = "";
|
||
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
|
||
ManagementObjectCollection moc = mc.GetInstances();
|
||
foreach (ManagementObject mo in moc)
|
||
{
|
||
if ((bool)mo["IPEnabled"] == true)
|
||
{
|
||
mac = mo["MacAddress"].ToString();
|
||
break;
|
||
}
|
||
}
|
||
return mac;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 获取IP地址
|
||
/// </summary>
|
||
public string GetIPAddress()
|
||
{
|
||
string st = "";
|
||
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
|
||
ManagementObjectCollection moc = mc.GetInstances();
|
||
foreach (ManagementObject mo in moc)
|
||
{
|
||
if ((bool)mo["IPEnabled"] == true)
|
||
{
|
||
//st=mo["IpAddress"].ToString();
|
||
System.Array ar;
|
||
ar = (System.Array)(mo.Properties["IpAddress"].Value);
|
||
st = ar.GetValue(0).ToString();
|
||
break;
|
||
}
|
||
}
|
||
return st;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 操作系统的登录用户名
|
||
/// </summary>
|
||
public string GetUserName()
|
||
{
|
||
return Environment.UserName;
|
||
}
|
||
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 获取计算机名
|
||
/// </summary>
|
||
public string GetComputerName()
|
||
{
|
||
return Environment.MachineName;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 操作系统类型
|
||
/// </summary>
|
||
public string GetSystemType()
|
||
{
|
||
string st = "";
|
||
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
|
||
ManagementObjectCollection moc = mc.GetInstances();
|
||
foreach (ManagementObject mo in moc)
|
||
{
|
||
st = mo["SystemType"].ToString();
|
||
}
|
||
return st;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 物理内存
|
||
/// </summary>
|
||
public string GetPhysicalMemory()
|
||
{
|
||
string st = "";
|
||
ManagementClass mc = new ManagementClass("Win32_ComputerSystem");
|
||
ManagementObjectCollection moc = mc.GetInstances();
|
||
foreach (ManagementObject mo in moc)
|
||
{
|
||
st = mo["TotalPhysicalMemory"].ToString();
|
||
}
|
||
return st;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 显卡PNPDeviceID
|
||
/// </summary>
|
||
public string GetVideoPNPID()
|
||
{
|
||
string st = "";
|
||
ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_VideoController");
|
||
foreach (ManagementObject mo in mos.Get())
|
||
{
|
||
st = mo["PNPDeviceID"].ToString();
|
||
}
|
||
return st;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 声卡PNPDeviceID
|
||
/// </summary>
|
||
public string GetSoundPNPID()
|
||
{
|
||
string st = "";
|
||
ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_SoundDevice");
|
||
foreach (ManagementObject mo in mos.Get())
|
||
{
|
||
st = mo["PNPDeviceID"].ToString();
|
||
}
|
||
return st;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// CPU版本信息
|
||
/// </summary>
|
||
public string GetCPUVersion()
|
||
{
|
||
string st = "";
|
||
ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_Processor");
|
||
foreach (ManagementObject mo in mos.Get())
|
||
{
|
||
st = mo["Version"].ToString();
|
||
}
|
||
return st;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// CPU名称信息
|
||
/// </summary>
|
||
public string GetCPUName()
|
||
{
|
||
string st = "";
|
||
ManagementObjectSearcher driveID = new ManagementObjectSearcher("Select * from Win32_Processor");
|
||
foreach (ManagementObject mo in driveID.Get())
|
||
{
|
||
st = mo["Name"].ToString();
|
||
}
|
||
return st;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// CPU制造厂商
|
||
/// </summary>
|
||
public string GetCPUManufacturer()
|
||
{
|
||
string st = "";
|
||
ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_Processor");
|
||
foreach (ManagementObject mo in mos.Get())
|
||
{
|
||
st = mo["Manufacturer"].ToString();
|
||
}
|
||
return st;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 主板制造厂商
|
||
/// </summary>
|
||
public string GetBoardManufacturer()
|
||
{
|
||
SelectQuery query = new SelectQuery("Select * from Win32_BaseBoard");
|
||
ManagementObjectSearcher mos = new ManagementObjectSearcher(query);
|
||
ManagementObjectCollection.ManagementObjectEnumerator data = mos.Get().GetEnumerator();
|
||
data.MoveNext();
|
||
ManagementBaseObject board = data.Current;
|
||
return board.GetPropertyValue("Manufacturer").ToString();
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 主板编号
|
||
/// </summary>
|
||
public string GetBoardID()
|
||
{
|
||
string st = "";
|
||
ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard");
|
||
foreach (ManagementObject mo in mos.Get())
|
||
{
|
||
st = mo["SerialNumber"].ToString();
|
||
}
|
||
return st;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 主板型号
|
||
/// </summary>
|
||
public string GetBoardType()
|
||
{
|
||
string st = "";
|
||
ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_BaseBoard");
|
||
foreach (ManagementObject mo in mos.Get())
|
||
{
|
||
st = mo["Product"].ToString();
|
||
}
|
||
return st;
|
||
}
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// Class for holding the HASP demo vendor code.
|
||
/// This vendor code shall be used within the sample.
|
||
/// </summary>
|
||
public class VendorCode
|
||
{
|
||
/// <summary>
|
||
/// HASP vendor code for demo keys
|
||
/// </summary>
|
||
private const string vendorCodeString =
|
||
"qVcIwZe6eEl+KRhnxBYfv+MdbrgHoxYOyNuRZDpRYNMmrj4yzDA4cCusmv7sHFYmMD8A0WBlO1FSLTt4" +
|
||
"RviMyC2rCQbKV67bTRpCbbGdLzWRJBhUhUHEG9Lj9n94oRhvGF96Wg6GBpEcPDwm4xGw2Q2h+VYjOoHZ" +
|
||
"OyGLn4DHZ8MLOXHVHTACfPlJmB0Aven20PljO+rvcxMjrMCZjqzVlE/J+aPItJ6vRrhEdrgIN7MYO/lo" +
|
||
"0fTN0u8LTmswg8pPW5oK5m48bc+BTCyTl9fThm1NM6T2lCOMP+GMhaNtW02l6pP7khYeJfZF+FQS7an4" +
|
||
"6UoLc3WB45k1uw7zxJSKHStS2Cap1V9XLDn7MXxos8r66LiQWyxQsB6c5UIVzPGnHlzWGcFwkPbB5Jqz" +
|
||
"KE6Kh3WYzpYxWD4dQlzIPf6p3YN5QKASXkVrlR95ZcE58hM6OBIMa0Z092bvYI+P7RWtQihas8RHtPsf" +
|
||
"GRdesegll5l8bCVI0xB9MHQZhdkGzlQM+DPkZPcjqu9SlZhx/lBapqeuIkRUOpDvTKRIcUlx427o+UzO" +
|
||
"DctW201MTgbFqUfzUB0q7wrQkufRZAuNfnMKa1BoEOoL5RxgiwTj80F9gWn+GQMQPLcUJxFUk263Tyn0" +
|
||
"irBnzHlUmteZIzbFtw9rlLZkJvDAa4zRI1kWy/aKLLfKlqRylvCdZX41jKXPRMaFCG47lx8JMr5knPZg" +
|
||
"L9EWVp7hm8nPHMAIzJioK+25vFn/FbNzF93asEfaFHggZbSGEEWHjvDz1JJ2Jo2zTlCfPRRVDx7L0+Ko" +
|
||
"AkyJoec2kdtOMn6Iqzz8aGuyy3iK9+PQm/mf3/+quP+QbJP61EI/BPc2YE0oNaE8l/cljd2rhvJby5kj" +
|
||
"6XvmF+2Y8uQjcxTXznrZzMJZJ1D4s8004XAzQC03ABw9URXanF9dQ6d72Sz+/lAAWnVGRv52oaVXxA4q" +
|
||
"fKtsT+HFk5KW9fsuKaOjZw==";
|
||
|
||
/// <summary>
|
||
/// Returns the vendor code as a string.
|
||
/// </summary>
|
||
static public string Code
|
||
{
|
||
get
|
||
{
|
||
return vendorCodeString;
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|