コード例 #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);
        }