flowMeter/NGToolsPC/mldPublic.cs

616 lines
20 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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;
}
}
}
}