在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例桌面应用界面/GUI → 倍福CNC 界面

倍福CNC 界面

桌面应用界面/GUI

下载此实例
  • 开发语言:C#
  • 实例大小:3.92M
  • 下载次数:98
  • 浏览次数:889
  • 发布时间:2020-09-02
  • 实例类别:桌面应用界面/GUI
  • 发 布 人:BO BO
  • 文件格式:.rar
  • 所需积分:3
 相关标签: CNC 倍福 NC 界面

实例介绍

倍福CNC 界面
using System;
using System.Windows.Forms;

namespace TcApplication
{
	static class Program
	{
		[System.Runtime.InteropServices.DllImport("User32.dll")]
		static extern IntPtr SetForegroundWindow(IntPtr hWnd);

		[System.Runtime.InteropServices.DllImport("User32.dll")]
		static extern IntPtr ShowWindow(IntPtr hWnd, int nCmdShow);

		public static MainApp mainApp;
		static FormSplash formSplash;
		static bool exceptionSignaled;
		static Timer timerSplashWait;

		const int SW_RESTORE = 9;

		#region Main Entry

		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main()
		{
			//Application.EnableVisualStyles();
			//Application.SetCompatibleTextRenderingDefault(false);

			Application.ThreadException  = new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

			if (CheckActiveProcess() == true)
			{
				Application.Exit();
				return;
			}

			ShowSplashScreen();

			// BasicConfigurator.Configure();
			log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Application.StartupPath   "\\System\\log.xml"));

			// Einschalten internes Debugging der LOG Komponenete
			// log4net.Util.LogLog.InternalDebugging = true;
			MainApp.log.Info("Application started.");

			// set the NumberGroupSeparator for all forms
			System.Globalization.CultureInfo newCultureInfo = new System.Globalization.CultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture.LCID);
			newCultureInfo.NumberFormat.NumberDecimalSeparator = ".";
			newCultureInfo.NumberFormat.NumberGroupSeparator = ",";
			newCultureInfo.TextInfo.ListSeparator = ";";
			Application.CurrentCulture = newCultureInfo;

			// load the settings
			MainApp.appSettings = new Settings();
			MainApp.appSettings.FileName = Application.StartupPath   "\\System\\AppSet.xml";
			MainApp.appSettings.ReadSettings();

			mainApp = new MainApp();
			Application.Run(mainApp);
			MainApp.log.Info("Application stopped.");

			MainApp.appSettings.WriteSettings();
		}

		#endregion

		#region Public functions

		public static void ShowSplashScreen()
		{
			String[] arguments = Environment.GetCommandLineArgs();
			for (int i = 1; i < arguments.Length; i  )
			{
				if (arguments[i].StartsWith("/NoSplash"))
					return;
			}

			if (formSplash == null)
				formSplash = new FormSplash();

			if (timerSplashWait == null)
			{
				timerSplashWait = new Timer();
				timerSplashWait.Tick  = new EventHandler(timerSplashWait_Tick);
			}

			formSplash.Parameters("HMI "   Application.ProductVersion,
				325, 296,
				new System.Drawing.Font("Arial", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))),
				System.Drawing.Color.FromArgb(0, 104, 157),
				System.Drawing.Color.Black);
			formSplash.Show();
			Application.DoEvents();
		}

		static void timerSplashWait_Tick(object sender, EventArgs e)
		{
			timerSplashWait.Enabled = false;
			CloseSplashScreen();
		}

		public static void CloseSplashScreen(int interval)
		{
			if (interval < 1)
				interval = 1;

			if (timerSplashWait != null)
			{
				timerSplashWait.Interval = interval;
				timerSplashWait.Enabled = true;
			}
		}

		public static void CloseSplashScreen()
		{
			if (formSplash != null)
			{
				formSplash.Close();
				formSplash.Dispose();
				formSplash = null;
			}
		}

		public static void BringSplashToFront()
		{
			if (formSplash != null)
				formSplash.BringToFront();
		}

		public static void SplashTopMost(bool level)
		{
			if (formSplash != null)
				formSplash.TopMost = level;
		}

		#endregion

		#region Private functions

		private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
		{
			if (!exceptionSignaled)
			{
				exceptionSignaled = true;

				MainApp.log.Fatal(sender, e.Exception);
				Beckhoff.App.ExceptionDialog exc = new Beckhoff.App.ExceptionDialog();
				exc.SetText(Application.ProductName   " has encountered a problem.\r\n"
					  "For further information take a look to the application event log!",
					e.Exception);
				exc.ShowDialog();
				exceptionSignaled = !exc.ExceptionSignaledChecked;
				exc.Dispose();
				exc = null;
			}
		}

		private static bool CheckActiveProcess()
		{
			try
			{
				int c = System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName).Length;
				if (c > 0)
				{
					bool bFoundSame = false;
					foreach (System.Diagnostics.Process pr in System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName))
					{
						if (pr.MainModule.FileName == Application.ExecutablePath && pr.Id != System.Diagnostics.Process.GetCurrentProcess().Id)
						{
							SetForegroundWindow(pr.MainWindowHandle);
							// 9 = SW_RESTORE (winuser.h)
							ShowWindow(pr.MainWindowHandle, SW_RESTORE);

							bFoundSame = true;
						}
					}
					return bFoundSame;
				}
				else
				{
					return false;
				}
			}
			catch //(System.Security.SecurityException ex)
			{
				return false;
			}
		}

		#endregion

	}
}

标签: CNC 倍福 NC 界面

实例下载地址

倍福CNC 界面

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警