Аналог vlax-product-key на .NET
Есть в лиспе прекрасная функция - (vlax-product-key), возвращает значение вида
1 | "Software\\Autodesk\\AutoCAD\\RXX.X\\ACAD-XXXX:XXX" |
Поставили мне задачку найти такое же, но на .NET. Чтобы не забыть - помещаю здесь. Кода - на одну строчку:
1 | Autodesk.AutoCAD.Runtime.SystemObjects.DynamicLinker.ProductKey; |
Естественно, что .NET-проект создается в полном соответствии с требованиями Autodesk: подключаются *mgd.dll, импортируются соответствующие пространства имен и т.д.
using Db = Autodesk.AutoCAD.DatabaseServices;
// Software\Autodesk\AutoCAD\R17.2\ACAD-7001:409
String registry = Db.HostApplicationServices.Current.RegistryProductRootKey;
// C:\Users\user\AppData\Roaming\Autodesk\AutoCAD 2009\R17.2\enu\
String appData = Db.HostApplicationServices.Current.RoamableRootFolder;
// C:\Users\user\AppData\Local\Autodesk\AutoCAD 2009\R17.2\enu\
String local = Db.HostApplicationServices.Current.LocalRootFolder;
Если используется AutoCAD 2013 или более новый, то ветка реестра получается так (изменения в API):
Db.HostApplicationServices.Current.UserRegistryProductRootKey
Спасибо Углядел, но пока искал информацию, ты меня опередил