static void OutputLicenseToText(Args _args) { #define.licenseVersion(2) #define.KeywordLen(20) #define.keywordLicense('License') #define.keywordProperties('Properties') #define.keywordCodes('Codes') #define.keywordCodeLine('CodeLine') #define.keywordDate('Date') #define.keywordSerial('Serial') #define.keywordValue('Value') #define.blank('') #define.space1(' ') #define.space2(' ') #define.space3(' ') #define.spaceHash(' #') #define.OutputFilename(@'C:\OutputLicenseKeys.txt') #define.keywordInfo(1) #define.keywordWarning(2) SysConfig sysConfig; SysLicenseCodeSort sysLicenseCodeSort; container fileOut; int i; System.IO.StreamWriter sw; InteropPermission perm = new InteropPermission(InteropKind::ClrInterop); ; fileOut += "LicenseVersion " + strfmt("%1", #licenseVersion); fileOut += #blank; fileOut += #keywordLicense + #spaceHash + xSysConfig::find(ConfigType::LicenseName,0).Value; fileOut += #blank; fileOut += #space1 + #keywordProperties; fileOut += #space2 + "Name" + #spaceHash + xSysConfig::find(ConfigType::LicenseName,0).Value; fileOut += #space2 + #keywordSerial + #spaceHash + xSysConfig::find(ConfigType::SerialNo,0).Value; fileOut += #space2 + #keywordDate + #spaceHash + xSysConfig::find(ConfigType::LicenseName,1).Value; fileOut += #space1 + "EndProperties"; fileOut += #blank; fileOut += #space1 + #keywordCodes; // Build CodeLines while select sysConfig where sysConfig.configType == ConfigType::AccessCodes && sysConfig.value != #blank join sysLicenseCodeSort order by SortIdx where sysLicenseCodeSort.Id == sysConfig.id { fileOut += #space2 + #keywordCodeLine + #spaceHash + int2str(sysConfig.id + 1); fileOut += #space3 + #keywordValue + #spaceHash + sysConfig.value; fileOut += #space2 + "EndCodeLine"; fileOut += #blank; } fileOut += #blank; fileOut += #space2 + "EndCodes"; fileOut += #space1 + "EndLicense"; // Begin file output perm.assert(); sw = new System.IO.StreamWriter(#OutputFilename); for (i=1; i<=conLen(fileOut); i++) { sw.WriteLine(conPeek(fileOut, i)); } sw.Flush(); sw.Close(); sw.Dispose(); CodeAccessPermission::revertAssert(); info("License successfully output to " + #OutputFilename); }
Copied From http://www.alexondax.com/2011/01/how-to-export-license-keys-that-are.html