using Eugen.ESystem; using Microsoft.Win32; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml.Linq; namespace Test_DynamicMenuItems { public partial class Form1 : Form { #region Version und Copyright // Version und Copyright string programName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen string programVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); static object[] attributes = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); string copyright = GenerateCopyright(); string icon = Application.StartupPath + "\\Info.bmp"; //Assembly Datum und Zeit static DateTime value = AssemblyDateTime(); string date = value.ToShortDateString(); string time = value.ToLongTimeString(); private static DateTime AssemblyDateTime() { var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan(TimeSpan.TicksPerDay * version.Build + TimeSpan.TicksPerSecond * 2 * version.Revision)); //Tage seit dem 1. Januar 2000 und Sekunden seit Mitternacht, (multiplizier mit 2 ergibt das Original) return buildDateTime; } private static string CurrentYear() { DateTime dtn = DateTime.Now; return dtn.Year.ToString(); } private static string StartYear() { //string startYear = ((AssemblyCopyrightAttribute)attributes[0]).Copyright; //return startYear.Remove(0, startYear.LastIndexOf(" ") + 1); string startYear = ""; if (((AssemblyCopyrightAttribute)attributes[0]).Copyright.Contains("Copyright © ")) { startYear = ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace("Copyright © ", ""); while (startYear.StartsWith(" ")) { startYear = startYear.Remove(0, 1); } startYear = startYear.Remove(startYear.IndexOf(" ")); return startYear; } else { DateTime dtn = DateTime.Now; return dtn.Year.ToString(); } } private static string GenerateCopyright() { string startYear = StartYear(); string currentYear = CurrentYear(); if (startYear == currentYear) { return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; } else { //return String.Concat(((AssemblyCopyrightAttribute)attributes[0]).Copyright, "-", currentYear); return ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace(startYear, String.Concat(startYear, "-", currentYear)); } } #endregion #region Programm-Info /// /// Contains the name of the program file /// public static string ProgramName { set; get; } /// /// Contains the version of the program file /// public static string ProgramVersion { set; get; } /// /// Contains the copyright notice /// public static string Copyright { set; get; } private void SetProgramInfo() { //Name, Version und Copyright setzen ProgramName = programName; ProgramVersion = programVersion; Copyright = copyright; } #endregion public Form1() { SetProgramInfo(); InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { labelProgramInfo.Text = String.Concat(ProgramName, "\r\n", ProgramVersion, "\r\n", Copyright); // Zeigt die Programm-Information an labelDLLInfo.Text = String.Concat(DynamicMenuItems.DllName, "\r\n", DynamicMenuItems.DllVersion, "\r\n", DynamicMenuItems.Copyright); // Zeigt die DLL-Information an InitDynamicMenuItemObjectDynamicMenuItemEvent(); } DynamicMenuItems dynamicMenuItemObject = new DynamicMenuItems(); //Event deklarieren private void InitDynamicMenuItemObjectDynamicMenuItemEvent() { string logfile = @"H:\Programmieren\Git-WorkRepository\VisualStudio\_DLL\DynamicMenuItems.git\Daten\Log.log"; //Name der Logdatei DynamicMenuItems.LogFile = logfile; //Namen der Logdatei bekanntgeben dynamicMenuItemObject.DynamicMenuItemEvent += dynamicMenuItemObject_DynamicMenuItemEvent; //Event abonnieren } private void buttonAddMenuItem_Click(object sender, EventArgs e) { dynamicMenuItemObject.Password = "abc"; dynamicMenuItemObject.XmlFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\LicenseBundles.xml"; //dynamicMenuItemObject.Topic = "NX-Portal";//Topic der XML-Datei //dynamicMenuItemObject.Group = "Bundle"; //Gruppe der XML-Datei //dynamicMenuItemObject.Key = "License"; //Schlüssel der XML-Datei dynamicMenuItemObject.Menu = subtestToolStripMenuItem; //Menu unter dem die MenuItems angelegt werden sollen //dynamicMenuItemObject.BackColor = Color.FromArgb(60, 60, 60); //Hintergrundfarbe des MenuItems //dynamicMenuItemObject.ForeColor = SystemColors.ControlDark; //Vordergrundfarbe des MenuItems dynamicMenuItemObject.AddMenuItem("NX91110"); //Einen Menueintrag erzeugen } private void buttonAddmenuItems_Click(object sender, EventArgs e) { dynamicMenuItemObject.Password = "abc"; dynamicMenuItemObject.XmlFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\LicenseBundles.xml"; //dynamicMenuItemObject.Topic = "NX-Portal";//Topic der XML-Datei //dynamicMenuItemObject.Group = "Bundle"; //Gruppe der XML-Datei //dynamicMenuItemObject.Key = "License"; //Schlüssel der XML-Datei dynamicMenuItemObject.Menu = subtestToolStripMenuItem; //Menu unter dem die MenuItems angelegt werden sollen dynamicMenuItemObject.BackColor = Color.FromArgb(60, 60, 60); //Hintergrundfarbe des MenuItems dynamicMenuItemObject.ForeColor = SystemColors.ControlDark; //Vordergrundfarbe des MenuItems string[] items = { "NX91110", "NX93300", "SC13500" }; //Liste der Menueinträge die angelegt werden sollen dynamicMenuItemObject.AddMenuItems(items); //Menueinträge aus einer List erzeugen } private void buttonAddMenuItemsFromXML_Click(object sender, EventArgs e) { dynamicMenuItemObject.Password = "abc"; dynamicMenuItemObject.XmlFile = "H:\\Programmieren\\Git-WorkRepository\\VisualStudio\\_DLL\\DynamicMenuItems.git\\Daten\\LicenseBundles.xml"; dynamicMenuItemObject.Topic = "NX-Portal";//Topic der XML-Datei dynamicMenuItemObject.Group = "Bundle"; //Gruppe der XML-Datei dynamicMenuItemObject.Key = "License"; //Schlüssel der XML-Datei dynamicMenuItemObject.Menu = subtestToolStripMenuItem; //Menu unter dem die MenuItems angelegt werden sollen dynamicMenuItemObject.BackColor = Color.FromArgb(60, 60, 60); //Hintergrundfarbe des MenuItems dynamicMenuItemObject.ForeColor = SystemColors.ControlDark; //Vordergrundfarbe des MenuItems dynamicMenuItemObject.AddMenuItemsFromXML(); //Alle Menüeinträge aus einer XML-Datei erzeugen } private void buttonRemoveItem_Click(object sender, EventArgs e) { dynamicMenuItemObject.Menu = subtestToolStripMenuItem; dynamicMenuItemObject.RemoveMenuItem("NX91110"); //Einen Menüeintrag löschen } private void buttonRemoveItems_Click(object sender, EventArgs e) { dynamicMenuItemObject.Menu = subtestToolStripMenuItem; string[] items = { "NX91110", "NX93300", "SC13500" }; dynamicMenuItemObject.RemoveMenuItems(items); //Eine Liste von Menüeinträgen löschen } private void buttonRemoveAllMenuItems_Click(object sender, EventArgs e) { dynamicMenuItemObject.Menu = subtestToolStripMenuItem; dynamicMenuItemObject.RemoveAllMenuItems(); //Alle Menüeinträge löschen } public static void dynamicMenuItemObject_DynamicMenuItemEvent(Object objSender, EventArgs e) { DoSomethingInForm1(); //Wird ausgeführt, wenn ein Event gefeuert wird } public static void DoSomethingInForm1() { //Wird ausgeführt, wenn ein Untermenüpunkt ausgewählt wird MessageBox.Show("Juhu, es hat funktioniert"); } } }