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 Eugen.NX; namespace Test_NxVersion { 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 = 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(); labelProgramInfo.Text = String.Concat("Programm-Info:\n\n",ProgramName, "\n", ProgramVersion, "\n", Copyright); //Programm-Info var nxv = new NxVersion(); //Initialisieren damit die DLL-Info abgefragt werden kann labelDLLInfo.Text = String.Concat("DLL-Info:\n\n", NxVersion.DllName, "\n", NxVersion.DllVersion, "\n", NxVersion.Copyright); //DLL-Info } private void buttonStart_Click(object sender, EventArgs e) { Start(); } private void Start() { try { string version1 = "C:\\CAD\\NX10"; //string version1 = "C:\\CAD\\NX1953"; string version2 = "C:\\CAD\\NX12"; NxVersion nxVer1 = new NxVersion(); //NX Version initialisieren NxVersion nxVer2 = nxVer1.GetNxVersion(version1); //Informationen über diese Version (C:\\CAD\\NX10) abrufen NxVersion nxVer3 = nxVer1.GetNxVersion(version2); //Informationen über diese Version (C:\\CAD\\NX12) abrufen //Werte zuordnen string text = ""; text = "Eingabe Methode 1 (UGII_BASE_DIR):\n\nUGII_BASE_DIR: " + version1; text += "\n\nNX Patch: " + nxVer2.NXpatch; text += "\nNX Version: " + nxVer2.NXversion; text += "\nMaintenance Release: " + nxVer2.MaintenanceRelease; text += "\nUGII_PRODUCT_NAME: " + nxVer2.UgiiProductName; text += "\nUGII_MAJOR_VERSION: " + nxVer2.UgiiMajorVersion; text += "\nUGII_MINOR_VERSION: " + nxVer2.UgiiMinorVersion; text += "\nUGII_SUBMINOR_VERSION: " + nxVer2.UgiiSubminorVersion; text += "\nNX Phase: " + nxVer2.NXphase; text += "\nMaintenance Pack: " + nxVer2.MaintenancePack; text += "\nMaintenance Pack Number: " + nxVer2.MaintenancePackNumber; text += "\nNX_VERSION_STRING: " + nxVer2.NxVersionString; text += "\nNX_MAJOR_STRING: " + nxVer2.NxMajorVersionString; text += "\nNX_MINOR_STRING: " + nxVer2.NxMinorVersionString; text += "\nNX_SUBMINOR_STRING: " + nxVer2.NxSubminorVersionString; text += "\nNX_PHASE_STRING: " + nxVer2.NxPhaseString; text += "\nUGII_FULL_VERSION: " + nxVer2.UgiiFullVersion; text += "\nUGII_VERSION: " + nxVer2.UgiiVersion; if (Convert.ToInt32(version1.Remove(0, version1.IndexOf("NX") + 2)) > 12) { text += "\nNX_COMPATIBLE_BASE_RELEASE_VERSION: " + nxVer2.NxCompatibleBaseReleaseVersion; } text += "\n\nPostNX12: " + nxVer2.PostNX12; labelNxVersion.Text = text; //Werte der installierten NX10 Version NxVersion nxVer4 = nxVer1.GetNxVersion("NX", 10, 0, 3, 5, 19); //Zweite Art der Zuordnung text = ""; text = "Eingabe Methode 2 (Einzelne Werte):\n\nUGII_BASE_DIR: C:\\CAD\\NX10"; text += "\n\nNX Patch: " + nxVer4.NXpatch; text += "\nNX Version: " + nxVer4.NXversion; text += "\nMaintenance Release: " + nxVer4.MaintenanceRelease; text += "\nUGII_PRODUCT_NAME: " + nxVer4.UgiiProductName; text += "\nUGII_MAJOR_VERSION: " + nxVer4.UgiiMajorVersion; text += "\nUGII_MINOR_VERSION: " + nxVer4.UgiiMinorVersion; text += "\nUGII_SUBMINOR_VERSION: " + nxVer4.UgiiSubminorVersion; text += "\nNX Phase: " + nxVer4.NXphase; text += "\nMaintenance Pack: " + nxVer4.MaintenancePack; text += "\nMaintenance Pack Number: " + nxVer4.MaintenancePackNumber; text += "\nNX_VERSION_STRING: " + nxVer4.NxVersionString; text += "\nNX_MAJOR_STRING: " + nxVer4.NxMajorVersionString; text += "\nNX_MINOR_STRING: " + nxVer4.NxMinorVersionString; text += "\nNX_SUBMINOR_STRING: " + nxVer4.NxSubminorVersionString; text += "\nNX_PHASE_STRING: " + nxVer4.NxPhaseString; text += "\nUGII_FULL_VERSION: " + nxVer4.UgiiFullVersion; text += "\nUGII_VERSION: " + nxVer4.UgiiVersion; if (Convert.ToInt32(version2.Remove(0, version1.IndexOf("NX") + 2)) > 12) { text += "\nNX_COMPATIBLE_BASE_RELEASE_VERSION: " + nxVer4.NxCompatibleBaseReleaseVersion; } text += "\n\nPostNX12: " + nxVer4.PostNX12; labelNxVersion1.Text = text; //Werte der übergebenen NX Version (NX10.0.3.5MP19) //Werte vergleichen text = "Der Vergleich von " + version1 + " mit NX10 ergibt: "; text += nxVer2.Compare("NX", 10, 0, 3, 5, 19); //Installierte Version mit der übergebenen Version (NX10) vergleichen text += "\nDer Vergleich von " + version1 + " mit " + version2 + " ergibt: "; text += nxVer2.Compare(nxVer3); //Installierte Version mit der übergebenen Version (NX12) vergleichen text += "\nDer Vergleich von " + version2 + " mit " + version1 + " ergibt: "; text += nxVer3.Compare(nxVer2); //Übergebenen Version (NX12) mit der installierten Version vergleichen text += "\n\nLegende:\n0 = beide Versionen gleich\n1 = Erste Version neuer\n2 = Zweite Version ist neuer"; labelCompare.Text = text; } catch (Exception ex) { MessageBox.Show("Es ist ein Fehler passiert!\n\nGenaue Beschreibung:\n" + ex.Message); } } } }