// 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;
///
/// 获取当前类对象的一个实例
///
public static MachineInfo I()
{
if (Instance == null) Instance = new MachineInfo();
return Instance;
}
///
/// 获取本地ip地址,多个ip
///
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地址信息串
//"\r\n
\r\n\r\n
//您的IP地址 \r\n\r\n您的IP是:[218.104.71.178] 来自:安徽省合肥市 联通"
///
/// 获取外网ip地址
///
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;
}
///
/// 获取网址address的返回的文本串数据
///
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;
}
///
/// 获取本机的MAC; //在项目-》添加引用....里面引用System.Management
///
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);
///
/// 获取ip对应的MAC地址
///
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地址失败";
}
///
/// 获取主板序列号
///
///
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 "";
}
}
///
/// 获取CPU序列号
///
///
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 "";
}
}
///
/// 获得CPU编号
///
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;
}
///
/// 获取硬盘序列号
///
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;*/
}
///
/// 获取网卡硬件地址
///
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;
}
///
/// 获取IP地址
///
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;
}
///
/// 操作系统的登录用户名
///
public string GetUserName()
{
return Environment.UserName;
}
///
/// 获取计算机名
///
public string GetComputerName()
{
return Environment.MachineName;
}
///
/// 操作系统类型
///
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;
}
///
/// 物理内存
///
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;
}
///
/// 显卡PNPDeviceID
///
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;
}
///
/// 声卡PNPDeviceID
///
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;
}
///
/// CPU版本信息
///
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;
}
///
/// CPU名称信息
///
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;
}
///
/// CPU制造厂商
///
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;
}
///
/// 主板制造厂商
///
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();
}
///
/// 主板编号
///
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;
}
///
/// 主板型号
///
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;
}
}
///
/// Class for holding the HASP demo vendor code.
/// This vendor code shall be used within the sample.
///
public class VendorCode
{
///
/// HASP vendor code for demo keys
///
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==";
///
/// Returns the vendor code as a string.
///
static public string Code
{
get
{
return vendorCodeString;
}
}
}
}