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); }
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*/ } }
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); }