GUID через VisualLISP
Понадобилось мне тут нарисовать код, который будет возвращать GUID.
Подключать .NET ради такой простой задачи ну не хотелось совсем. Ок, делаем по-простому, по рабоче-крестьянски:
1 2 3 4 5 6 7 8 9 10 11 12 13 | (defun _kpblc-get-guid (/ obj res) (if (and (= (type (setq obj (vl-catch-all-apply (function (lambda () (vlax-create-object "Scriptlet.TypeLib"))))) ) ;_ end of type 'vla-object ) ;_ end of = (vlax-property-available-p obj 'guid) ) ;_ end of and (setq res (vl-string-trim "{}" (vlax-get-property obj 'guid))) ) ;_ end of if (vl-catch-all-apply (function (lambda () (vlax-release-object obj)))) res ) ;_ end of defun |
И все! Можно, конечно, добавить тьму проверок, но на Win7x64 и Win10x64 код сработал вполне корректно.