注塑喷涂
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
5.0 KiB

4 months ago
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
using System.Text;
4 months ago
namespace InjectionPC
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
///
public static SqlConnection DBConn; //数据库连接串
public static string station;
public static string OperatorName;
public static string IP;
public static string Shift; //班次
public static string ProductDate;
public static string RemoteIP;
public static string PicturePath;
public static string WeightFolder;
public static string WeightFile;
public static string WeightUser;
public static string WeightPsw;
//true 注塑机离线. 用于测试
public static bool WeightOutLine=false;
4 months ago
public static int interVal;
[STAThread]
static void Main()
{
bool isRuned;
System.Threading.Mutex mutex = new System.Threading.Mutex(true, "OnlyRunOneInstance", out isRuned);
//处理UI线程异常
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
//处理非UI线程异常
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
4 months ago
if (isRuned)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmLogin());
mutex.ReleaseMutex();
}
else
{
MessageBox.Show("程序已启动!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//Application.Run(new Form1());
}
/// <summary>判断指定字符串是否包含有汉字</summary>
/// <param name="StrChineseString">指定的字符串</param>
/// <returns>若包含有汉字则返回True,否则返回False</returns>
public static bool InChinese1(string StrChineseString)
{
return System.Text.RegularExpressions.Regex.IsMatch(StrChineseString, @"[/u4e00-/u9fa5]+");
}
public static void GetCode(string code, out string stockNo, out string batchNo, out string partNo)
{
//解析塑料粒子条码,长度为20的为一维码22000000821906090201,否则为二维码
//二维码样例Z-340.180411.000001;5000;S35001;20180411;P1710401.[#Line#];180411;
//第一个分号之前的数据,即Z-340.180411.000001; Z-340为零件号,180411为批次号,000001为流水号
//一维码前十位为零件号,tb_Product PartNo,11~16位为批次
stockNo = ""; //存货代码
batchNo = ""; //批次
partNo = ""; //零件号
if (code.Contains(".") == false)
{
//一维码
stockNo = code.Substring(0, 10);
batchNo = code.Substring(10, 6);
}
else
{
//二维码
string[] strs = code.Split(';');
if (strs.Length > 0)
{
string str = strs[0];
string[] props = str.Split('.');
if (props.Length >= 3)
{
partNo = props[0];
batchNo = props[1];
}
}
}
}
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
string str = GetExceptionMsg(e.Exception, e.ToString());
MessageBox.Show(str);
//LogManager.WriteLog(str);
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
string str = GetExceptionMsg(e.ExceptionObject as Exception, e.ToString());
MessageBox.Show(str);
//LogManager.WriteLog(str);
}
static string GetExceptionMsg(Exception ex, string backStr)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("****************************异常文本****************************");
sb.AppendLine("【出现时间】:" + DateTime.Now.ToString());
if (ex != null)
{
sb.AppendLine("【异常类型】:" + ex.GetType().Name);
sb.AppendLine("【异常信息】:" + ex.Message);
sb.AppendLine("【堆栈调用】:" + ex.StackTrace);
}
else
{
sb.AppendLine("【未处理异常】:" + backStr);
}
sb.AppendLine("***************************************************************");
return sb.ToString();
}
4 months ago
}
}