39c64cd476
SVN-Revision: r1049
419 lines
12 KiB
C#
419 lines
12 KiB
C#
/******************************
|
|
* 说明:系统全局类
|
|
* 创建人:龚宇超
|
|
* 创建日期:2017-08-09
|
|
* 修改人:
|
|
* 修改日期:
|
|
* 修改备注:
|
|
* 版本:1.0.0.0
|
|
******************************/
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Net;
|
|
using System.Management;
|
|
using DevExpress.XtraTab;
|
|
using System.Windows.Forms;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Lskj.Model
|
|
{
|
|
/// <summary>
|
|
/// 系统全局类
|
|
/// </summary>
|
|
public sealed class ERPInfo
|
|
{
|
|
private static ERPInfo _instance = null;
|
|
/// <summary>
|
|
/// ERPInfo静态单例对象
|
|
/// </summary>
|
|
/// <value>The instance.</value>
|
|
public static ERPInfo Instance
|
|
{
|
|
get
|
|
{
|
|
if (_instance == null)
|
|
{
|
|
_instance = new ERPInfo();
|
|
}
|
|
return _instance;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 是否为超级管理员
|
|
/// </summary>
|
|
/// <value><c>true</c> if this instance is user manager; otherwise, <c>false</c>.</value>
|
|
public bool IsUserManager { get { return UserManager.Equals(UserName); } }
|
|
/// <summary>
|
|
/// 登录帐套
|
|
/// </summary>
|
|
public string AccountBook;
|
|
/// <summary>
|
|
/// 输入的密码
|
|
/// </summary>
|
|
public string InPassWord;
|
|
/// <summary>
|
|
/// 员工ID
|
|
/// </summary>
|
|
public string UserId;
|
|
/// <summary>
|
|
/// 员工编号
|
|
/// </summary>
|
|
public string LoginAccount;
|
|
/// <summary>
|
|
/// 员工姓名
|
|
/// </summary>
|
|
public string UserName;
|
|
/// <summary>
|
|
/// 密码
|
|
/// </summary>
|
|
public string Password;
|
|
/// <summary>
|
|
/// 菜单GroupId
|
|
/// </summary>
|
|
public string GroupId;
|
|
/// <summary>
|
|
/// 子系统
|
|
/// </summary>
|
|
public string SubSysId;
|
|
/// <summary>
|
|
/// 子系统名称
|
|
/// </summary>
|
|
public string SubSysName;
|
|
/// <summary>
|
|
/// 主界面page界面
|
|
/// </summary>
|
|
public XtraTabControl PageControl;
|
|
/// <summary>
|
|
/// 主界面page界面字典
|
|
/// </summary>
|
|
public Dictionary<string, DllModule> ModuleForms;
|
|
/// <summary>
|
|
/// 登录人联系电话
|
|
/// </summary>
|
|
public string UserLinkPhone;
|
|
/// <summary>
|
|
/// 主界面page界面
|
|
/// </summary>
|
|
public Form MainControl;
|
|
/// <summary>
|
|
/// 主页面焦点
|
|
/// </summary>
|
|
public PictureBox pic_search;
|
|
/// <summary>
|
|
/// 是否阻止回车事件
|
|
/// </summary>
|
|
public bool IsExecute = false;
|
|
|
|
|
|
/// <summary>
|
|
/// 登录IP
|
|
/// </summary>
|
|
public string LoginIP
|
|
{
|
|
get
|
|
{
|
|
try
|
|
{
|
|
return Dns.GetHostAddresses(WindowName)[0] + "";
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
return string.Empty;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 登录IP
|
|
/// </summary>
|
|
public string LoginIPV4
|
|
{
|
|
get
|
|
{
|
|
try
|
|
{
|
|
string text = string.Empty;
|
|
IPAddress[] ip = Dns.GetHostAddresses(WindowName);
|
|
foreach (IPAddress address in ip)
|
|
{
|
|
if (address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
|
|
{
|
|
text = address + "";
|
|
}
|
|
|
|
}
|
|
|
|
|
|
return text;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
return "";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 用户电脑名
|
|
/// </summary>
|
|
public string WindowName
|
|
{
|
|
get { return Dns.GetHostName(); }
|
|
}
|
|
/// <summary>
|
|
/// 子系统数量
|
|
/// </summary>
|
|
public int SubMenuCount;
|
|
/// <summary>
|
|
/// 超级管理员
|
|
/// </summary>
|
|
public string UserManager = "管理员";
|
|
/// <summary>
|
|
/// 用户皮肤字段
|
|
/// </summary>
|
|
/// <value>The name of the skin.</value>
|
|
public string SkinFieldName = "SkinName";
|
|
/// <summary>
|
|
/// 默认新增判断行
|
|
/// </summary>
|
|
public string isAddRows = "xxxxx_isAddRows";
|
|
/// <summary>
|
|
/// 用户皮肤
|
|
/// </summary>
|
|
public string SkinName;
|
|
/// <summary>
|
|
/// 模块编号
|
|
/// </summary>
|
|
public string WorkModid;
|
|
/// <summary>
|
|
/// 当前选中的方案id
|
|
/// </summary>
|
|
/// <value>The mac address.</value>
|
|
public string SeriesId;
|
|
/// <summary>
|
|
/// 车间
|
|
/// </summary>
|
|
public string WorkCJ;
|
|
/// <summary>
|
|
/// 车间ID
|
|
/// </summary>
|
|
public string WorkCJId;
|
|
/// <summary>
|
|
/// 机台
|
|
/// </summary>
|
|
public string WorkJT;
|
|
/// <summary>
|
|
/// 机台ID
|
|
/// </summary>
|
|
public string WorkJTId;
|
|
/// <summary>
|
|
/// 班次
|
|
/// </summary>
|
|
public string WorkBZ;
|
|
/// <summary>
|
|
/// 班次ID
|
|
/// </summary>
|
|
public string WorkBZId;
|
|
/// <summary>
|
|
/// 班组
|
|
/// </summary>
|
|
public string ClassName;
|
|
/// <summary>
|
|
/// The work no
|
|
/// </summary>
|
|
public string WorkNo;
|
|
/// <summary>
|
|
/// 是否显示
|
|
/// </summary>
|
|
public static bool ShowMsg = true;
|
|
/// <summary>
|
|
/// 当前登录Mac地址
|
|
/// </summary>
|
|
/// <value>The mac address.</value>
|
|
public string MacAddress
|
|
{
|
|
get {
|
|
if (!string.IsNullOrWhiteSpace(RecordMAC)) return RecordMAC;
|
|
return GetMacAddress();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 客户名称
|
|
/// </summary>
|
|
public string ClientName = "";
|
|
/// <summary>
|
|
/// 如果无法连接则后面不在继续连接了
|
|
/// </summary>
|
|
public bool bSmartClientIsOK = true;
|
|
/// <summary>
|
|
/// 文件升级ip
|
|
/// </summary>
|
|
public string UpdateIP = "";
|
|
/// <summary>
|
|
/// 登录结果
|
|
/// </summary>
|
|
public bool LoginResult = false;
|
|
/// <summary>
|
|
/// Mrp当前切换状态
|
|
/// </summary>
|
|
public string MrpTag = "";
|
|
/// <summary>
|
|
/// 记录本机MAC地址(只记录初始获取的,每次获取导致速度很慢)
|
|
/// </summary>
|
|
public string RecordMAC = "";
|
|
|
|
|
|
/// <summary>
|
|
/// 获取本机MAC地址
|
|
/// </summary>
|
|
/// <returns>本机MAC地址</returns>
|
|
string GetMacAddress()
|
|
{
|
|
try
|
|
{
|
|
string strMac = string.Empty;
|
|
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
|
|
ManagementObjectCollection moc = mc.GetInstances();
|
|
foreach (ManagementObject mo in moc)
|
|
{
|
|
if ((bool)mo["IPEnabled"])
|
|
{
|
|
strMac = mo["MacAddress"].ToString();
|
|
string[] IPAddress = (string[])mo["IPAddress"];
|
|
if (IPAddress.Length > 0 && IPAddress[0].Equals(LoginIPV4))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
moc = null;
|
|
mc = null;
|
|
RecordMAC= strMac.Replace(":", "-");
|
|
return strMac.Replace(":", "-");
|
|
}
|
|
catch
|
|
{
|
|
return "";
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 加密狗id
|
|
/// </summary>
|
|
public int[] keyHandles = new int[8];
|
|
/// <summary>
|
|
/// 加密狗编号
|
|
/// </summary>
|
|
public int[] keyNumber = new int[8];
|
|
/// <summary>
|
|
/// 是否需要U盾密码验证
|
|
/// </summary>
|
|
public bool isDogVerifyPassword = true;
|
|
/// <summary>
|
|
/// U盾密码默认值
|
|
/// </summary>
|
|
public string dogVerifyPasswordDefault
|
|
{
|
|
get
|
|
{
|
|
byte[] bytes = new byte[256];
|
|
for (int i = 0; i < bytes.Length; i++)
|
|
{
|
|
bytes[i] = 255;
|
|
}
|
|
return Encoding.Default.GetString(bytes);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 当前选中页签模块编号
|
|
/// </summary>
|
|
public string selectFormModleId;
|
|
|
|
#region 判断windows版本
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
private struct OSVERSIONINFOEX
|
|
{
|
|
public int dwOSVersionInfoSize;
|
|
public int dwMajorVersion;
|
|
public int dwMinorVersion;
|
|
public int dwBuildNumber;
|
|
public int dwPlatformId;
|
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
|
|
public string szCSDVersion;
|
|
}
|
|
[DllImport("ntdll.dll", SetLastError = true)]
|
|
private static extern int RtlGetVersion(ref OSVERSIONINFOEX versionInfo);
|
|
private static OSVERSIONINFOEX GetOSVersion()
|
|
{
|
|
OSVERSIONINFOEX versionInfo = new OSVERSIONINFOEX();
|
|
versionInfo.dwOSVersionInfoSize = Marshal.SizeOf(typeof(OSVERSIONINFOEX));
|
|
int result = RtlGetVersion(ref versionInfo);
|
|
if (result != 0)
|
|
{
|
|
throw new Exception("Failed to get OS version");
|
|
}
|
|
return versionInfo;
|
|
}
|
|
public string SystemVersion
|
|
{
|
|
get
|
|
{
|
|
string systemVersion = "";
|
|
OSVERSIONINFOEX osVersionInfo = GetOSVersion();
|
|
// 判断具体的Windows版本
|
|
if (osVersionInfo.dwPlatformId == 2) // 2 is VER_PLATFORM_WIN32_NT
|
|
{
|
|
if (osVersionInfo.dwMajorVersion == 10)
|
|
{
|
|
systemVersion = "Windows 10 或 Windows 11";
|
|
}
|
|
else
|
|
{
|
|
switch (osVersionInfo.dwMajorVersion)
|
|
{
|
|
case 6:
|
|
switch (osVersionInfo.dwMinorVersion)
|
|
{
|
|
case 3:
|
|
systemVersion = "Windows 8.1";
|
|
break;
|
|
case 2:
|
|
systemVersion = "Windows 8";
|
|
break;
|
|
case 1:
|
|
systemVersion = "Windows 7";
|
|
break;
|
|
case 0:
|
|
systemVersion = "Windows Vista";
|
|
break;
|
|
}
|
|
break;
|
|
case 5:
|
|
switch (osVersionInfo.dwMinorVersion)
|
|
{
|
|
case 2:
|
|
systemVersion = "Windows Server 2003; Windows XP x64 Edition";
|
|
break;
|
|
case 1:
|
|
systemVersion = "Windows XP";
|
|
break;
|
|
case 0:
|
|
systemVersion = "Windows 2000";
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
systemVersion = "未知版本";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
systemVersion = "非Windows NT系列操作系统";
|
|
|