示例#1
0
        public string CheckMaster(string license = null)
        {
            if (!CheckDogStatus())
            {
                return("未检测到超级狗");
            }

            string info      = null;
            var    dogStatus = _dog.GetSessionInfo(Dog.UpdateInfo, ref info);

            if (dogStatus != DogStatus.StatusOk || string.IsNullOrEmpty(info))
            {
                return("超级狗信息读取失败");
            }

            _licGenApiHelper = new LicGenAPIHelper();

            var licGenStatus = _licGenApiHelper.sntl_lg_initialize(null);

            if (licGenStatus != sntl_lg_status_t.SNTL_LG_STATUS_OK)
            {
                _licGenApiHelper.sntl_lg_cleanup();
                return("初始化许可失败");
            }

            licGenStatus = _licGenApiHelper.sntl_lg_start(null, SuperDogVendorCode.VendorCode,
                                                          sntl_lg_license_type_t.SNTL_LG_LICENSE_TYPE_FORMAT_AND_UPDATE, license, info);
            if (licGenStatus != sntl_lg_status_t.SNTL_LG_STATUS_OK)
            {
                _licGenApiHelper.sntl_lg_cleanup();

                switch (licGenStatus)
                {
                case sntl_lg_status_t.SNTL_LG_INVALID_VENDOR_CODE:
                    return("无效的开发商代码");

                case sntl_lg_status_t.SNTL_LG_MASTER_KEY_IO_ERROR:
                    return("未检测到开发狗");

                case sntl_lg_status_t.SNTL_LG_MASTER_KEY_CONNECT_ERROR:
                case sntl_lg_status_t.SNTL_LG_MASTER_KEY_ACCESS_ERROR:
                    return("连接开发狗发生错误");

                default:
                    return("加载许可失败");
                }
            }

            if (string.IsNullOrEmpty(license))
            {
                _licGenApiHelper.sntl_lg_cleanup();
            }

            return(null);
        }
示例#2
0
 private void Form_Main_FormClosed(object sender, FormClosedEventArgs e)
 {
     Status = LicGenHelper.sntl_lg_cleanup();
     if (sntl_lg_status_t.SNTL_LG_STATUS_OK != Status)
     {
         /*handle error*/
     }
 }
示例#3
0
        public bool Format(out string message)
        {
            var license = LoadFile("License.xml");

            message = CheckMaster(license);
            if (!string.IsNullOrEmpty(message))
            {
                return(false);
            }

            message = Check();
            if (!string.IsNullOrEmpty(message))
            {
                return(false);
            }

            if (!CheckDogStatus())
            {
                message = "超级狗状态不正确";
                return(false);
            }

            string lgLicense = null;
            string lgStatus  = null;
            var    status    = _licGenApiHelper.sntl_lg_generate_license(null, ref lgLicense, ref lgStatus);

            _licGenApiHelper.sntl_lg_cleanup();
            if (status != sntl_lg_status_t.SNTL_LG_STATUS_OK)
            {
                message = "生成许可失败";
                return(false);
            }

            string acknowledgeXml = null;
            var    dogStatus      = Dog.Update(lgLicense, ref acknowledgeXml);

            _dog.Logout();
            _dog.Dispose();
            _dog = null;

            if (dogStatus != DogStatus.StatusOk)
            {
                message = "格式化超级狗失败";
                return(false);
            }

            message = "格式化成功";
            return(true);
        }