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.
		
		
		
		
		
			
		
			
				
					
					
						
							147 lines
						
					
					
						
							5.8 KiB
						
					
					
				
			
		
		
	
	
							147 lines
						
					
					
						
							5.8 KiB
						
					
					
				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 | 
						|
{ | 
						|
    /// <summary> | 
						|
    /// App.xaml 的交互逻辑 | 
						|
    /// </summary> | 
						|
    public partial class App : Application | 
						|
    { | 
						|
        private bool v = false; | 
						|
        private string exeV = ""; | 
						|
        private string licV = ""; | 
						|
        /// <summary> | 
						|
        /// 重写Startup函数 | 
						|
        /// </summary> | 
						|
        /// <param name="e"></param> | 
						|
        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 | 
						|
            { | 
						|
                MessageHelper.ShowTips("软件授权失败!"); | 
						|
                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); | 
						|
        } | 
						|
    } | 
						|
}
 | 
						|
 |