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 |
|
{ |
|
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); |
|
} |
|
} |
|
}
|
|
|