using KGIS.Framework.Core.Services; using KGIS.Framework.Utils; using KGIS.Framework.Utils.Helper; using Kingo.Core.Authorize; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.InteropServices; using System.Threading.Tasks; using System.Windows; namespace JKRJ_Startup { /// /// App.xaml 的交互逻辑 /// public partial class App : Application { private bool v = false; private string exeV = ""; private string licV = ""; /// /// 重写Startup函数 /// /// protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); // 接收参数数组 var args = e.Args; // 定义为字符数组也可以 //string[] args = e.Args; // 判断参数中是否包含 TestWindows Validity(null); if (v) { new MainWindow().Show(); } else { MessageBox.Show("软件授权失败!"); Application.Current.Shutdown(); } } private void Validity(object obj) { try { GetVersion(); //判断授权方式 var type = ConfigurationManager.AppSettings.Get("LicenseType"); if (type == "F")//本地授权 { Attribute guid_attr = Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(GuidAttribute)); string guid = ((GuidAttribute)guid_attr).Value; try { string[] licpath = System.IO.Directory.GetFiles(System.Environment.CurrentDirectory, "*.lic", System.IO.SearchOption.TopDirectoryOnly); if (licpath.Length == 0) { MessageHelper.ShowError("授权校验失败!"); } if (licpath.Length == 0 || !RunIDService2.Instance.Verify(AuthorizeType.多合一授权, "KGIS_SJJK", exeV, licV, "", "10eaa61")) { KGIS.PlatformPlugin.Views.License.LicenseView lic = new KGIS.PlatformPlugin.Views.License.LicenseView(obj, "KGIS_SJJK", exeV, licV); lic.Code = "10eaa61"; int num = -1; //lic.DocValidity = Validity; System.Windows.Forms.DialogResult dialog = lic.ShowDialog(); if (dialog != System.Windows.Forms.DialogResult.Yes && dialog != System.Windows.Forms.DialogResult.OK) { v = false; return; } } else { v = true; return; } } catch (Exception ex) { LogAPI.Debug(ex); KGIS.PlatformPlugin.Views.License.LicenseView lic = new KGIS.PlatformPlugin.Views.License.LicenseView(obj, "KGIS_SJJK", exeV, licV); lic.Code = "10eaa61"; int num = -1; //lic.DocValidity = Validity; System.Windows.Forms.DialogResult dialog = lic.ShowDialog(); if (dialog != System.Windows.Forms.DialogResult.Yes && dialog != System.Windows.Forms.DialogResult.OK) { v = false; return; } } } else if (type == "D") { if (!RunIDService2.Instance.Verify("KGIS_SJJK", "400", "4x")) { KGIS.PlatformPlugin.Views.License.LicenseView lic = new KGIS.PlatformPlugin.Views.License.LicenseView(obj, "KGIS_SJJK", exeV, licV); System.Windows.Forms.DialogResult dialog = lic.ShowDialog(); if (dialog != System.Windows.Forms.DialogResult.Yes && dialog != System.Windows.Forms.DialogResult.OK) { v = false; return; } } } else { KGIS.PlatformPlugin.Views.License.LicenseView lic = new KGIS.PlatformPlugin.Views.License.LicenseView(obj, "KGIS_SJJK", exeV, licV); int num = -1; lic.DocValidity = Validity; System.Windows.Forms.DialogResult dialog = lic.ShowDialog(); if (dialog != System.Windows.Forms.DialogResult.Yes && dialog != System.Windows.Forms.DialogResult.OK) { v = false; return; } } v = true; } catch (Exception ex) { LogAPI.Debug(ex); } } private void GetVersion() { string fileName = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AppDomain.CurrentDomain.FriendlyName); FileVersionInfo file1 = System.Diagnostics.FileVersionInfo.GetVersionInfo(fileName); exeV = String.Format("{0}{1}{2}", file1.ProductMajorPart, file1.ProductMinorPart, file1.ProductBuildPart); licV = string.Format("{0}x", file1.ProductMajorPart); } } }