| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Где найти уникальное имя компьютера в реестре через AutoLISP

Где найти уникальное имя компьютера в реестре через AutoLISP

Ответ
Поиск в этой теме
Непрочитано 26.06.2018, 14:23
Где найти уникальное имя компьютера в реестре через AutoLISP
OKJI
 
AutoLISP
 
Харьков
Регистрация: 19.06.2018
Сообщений: 101

Здравствуйте дорогие коллеги!)

Возникла необходимость привязать привязать программный модуль к конкретному компьютеру.

Вот команда для доступа к разделу реестра:
Код:
[Выделить все]
 (VL-REGISTRY-READ "HKEY_CURRENT_USER\\искомый_подраздел\\")
По какому адресу реестра можно найти какой нибудь уникальный номер или имя компа?
А еще лучше бы сделать привязку к лицензионному ключу винды)))
Просмотров: 9303
 
Непрочитано 27.06.2018, 15:38
| 1 #21
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Замени (VL-REGISTRY-READ "HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Control\\ComputerName\\ComputerName") на (VL-REGISTRY-READ "HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Control\\ComputerName\\ComputerName" "ComputerName")
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.06.2018, 16:09
#22
NotBadBoy


 
Регистрация: 19.08.2014
Сообщений: 23


а это разве все уникальное? может быть, как некоторые делают, считать серийный номер винчестера? или mac сетевой карты? или через lisp этого не сделать?
NotBadBoy вне форума  
 
Непрочитано 27.06.2018, 16:13
#23
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


#17
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.07.2018, 09:41
#24
OKJI

AutoLISP
 
Регистрация: 19.06.2018
Харьков
Сообщений: 101
Отправить сообщение для OKJI с помощью Skype™


Спасибо за помощь!))) Самый уникальный номер компа я решил использовать код лицензии)
Код:
[Выделить все]
 (VL-REGISTRY-READ "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion" "ProductId")
Отлично работает)
__________________
Вечность это:
 (while T)
OKJI вне форума  
 
Непрочитано 15.01.2019, 10:45
#25
tujn08


 
Регистрация: 26.12.2013
Сообщений: 284


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Лисп может обращаться к переменным окружения, которые касаются не только ACAD, но и Windows.
Привет!
Почти в тему, но про реестр. А может и без реестра обойтись можно.

проблемка:
был пользователь (логин) "ivan" - локальный
появился пользователь (логин) "ivan" - доменный

юзер попадает в доменного ("dom") пользователя в итоге получается имя "ivan.dom"
итог:
(getenv "username") выдает "ivan"
а если так:
(getvar 'roamablerootprefix)
то "C:\\Users\\ivan.dom\\AppData\\Roaming\\Autodesk\\AutoCAD 2013 — Русский\\R19.0\\rus\\"

как получить имя активного пользователя "ivan.dom" ?

Спасибо!

----- добавлено через ~13 мин. -----
вопрос снят нашел:


Код:
[Выделить все]
 
(vl-registry-read "HKEY_CURRENT_USER\\Volatile Environment" "HOMEPATH")
tujn08 вне форума  
 
Непрочитано 15.01.2019, 11:47
1 | 1 #26
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Вызови cmd (ком.строку Windows) и дай там команду set - увидишь все системные переменные окружения, с которыми можно работать через getenv. И для них, кстати, регистр уже не важен (не помню, говорилось или нет).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 15.01.2019, 21:02
#27
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,702
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от OKJI Посмотреть сообщение
Спасибо за помощь!))) Самый уникальный номер компа я решил использовать код лицензии)
Код:
1
(VL-REGISTRY-READ "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion" "ProductId")
Отлично работает)
Насколько я помню, ProductId - не уникален. Вроде как, в организациях, если используется корпоративная лицензия, у всех одинаковый ProductId.
P.S. Сделал проверку по данным, полученным из 22 ПК одной организации. Из них 16 - с одинаковыми PorductId. У остальных 6 есть различия в трёх последних цифрах.
Миниатюры
Нажмите на изображение для увеличения
Название: 20190116_ProductId.jpg
Просмотров: 31
Размер:	38.3 Кб
ID:	209953  
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)

Последний раз редактировалось Do$, 16.01.2019 в 14:08.
Do$ вне форума  
 
Непрочитано 16.01.2019, 00:33
#28
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


А к Windows Management Instrumentation (WMI) через лисп доступа нет?
Сергей812 вне форума  
 
Непрочитано 17.01.2019, 08:11
#29
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


По-моему, нет. И далеко не всегда на это у пользователей есть права
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.01.2019, 10:44
#30
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Offtop:
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
И далеко не всегда на это у пользователей есть права
Печально, если уровень IT службы фирмы - тупо заблокировать все что можно пользователю (даже на чтение) вместо реализации реальной безопасности.
Сергей812 вне форума  
 
Непрочитано 17.01.2019, 11:04
#31
tujn08


 
Регистрация: 26.12.2013
Сообщений: 284


Может это вам надо?
Код:
[Выделить все]
 (progn
(defun HDSerial ( / wmi srv drv ser )  ; серийный всех дисков
	(vl-load-com)
	(setq ser_lst nil)
  (vl-catch-all-apply
    (function
      (lambda ( )
        (if
          (setq wmi (vlax-create-object "WbemScripting.SWbemLocator")
                srv (vlax-invoke wmi 'connectserver nil nil nil nil nil nil nil nil)
                drv (vlax-invoke srv 'execquery "Select SerialNumber from Win32_DiskDrive")
          )
          (vlax-for item drv   ; перебирет все физический диски
            (vlax-for prop (vlax-get item 'Properties_)
              (if (eq "SERIALNUMBER" (strcase (vlax-get prop 'name)))
                (progn 
					(setq ser (vl-string-trim " " (vlax-get prop 'value))) ; серийный номер физ. диска всех которые подключены
					(if ser_lst
						(progn ; список есть- надо добавить к существующему
							(setq ser_lst (cons ser ser_lst)) )
						(progn ; списка нет - надо создать новый
							(setq ser_lst (list ser)) )
					)
				)
              )
            )
          )
        )
      )
    )
  )
  (if drv (vlax-release-object drv))
  (if srv (vlax-release-object srv))
  (if wmi (vlax-release-object wmi))
  ;ser
;	(HDSerial)
	(setq ser_lst (reverse ser_lst))
;	(princ ser_lst)
)

(defun Get_UUID (/ LocatorObj ServiceObj ObjectSetObj UUID) ; Ну и на закуску - уникальный идентификатор компьютера (UUID)
	  (vl-load-com)
  (setq LocatorObj
         (vlax-create-object "WbemScripting.SWbemLocator")
  )
  (setq ServiceObj
         (vlax-invoke
           LocatorObj 'ConnectServer nil nil nil nil nil nil nil nil)
  )
  (setq ObjectSetObj
         (vlax-invoke
           ServiceObj
           'ExecQuery
           "SELECT UUID FROM Win32_ComputerSystemProduct"
         )
  )
  (vlax-for Obj ObjectSetObj
    (setq UUID
           (vlax-get Obj 'UUID)
    )
  )
  (foreach Obj
               (list LocatorObj ServiceObj ObjectSetObj)
    (and Obj (vlax-release-object Obj))
  )
  ;UUID
  (setq NB_UUID UUID)
)
;(Get_UUID)
)
tujn08 вне форума  
 
Непрочитано 03.02.2020, 11:21
#32
kserg


 
Регистрация: 22.04.2004
Сообщений: 269


Нашел интересную информацию здесь :
https://forums.autodesk.com/t5/visua...sp/td-p/902948
https://www.cadtutor.net/forum/topic...drive-by-lisp/
kserg вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Где найти уникальное имя компьютера в реестре через AutoLISP

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Hазбивка-настройка окружности в AutoCAD для экспорта через DXF DENver_M7 AutoCAD 15 01.03.2016 14:39
Возможность устройства эвакуационного пути через лестничную клетку. Saha Пожарная безопасность 37 21.12.2015 10:25
Как отредактировать макрос, записанный через рекордер операций в Autocad vladimirr_b Программирование 1 13.10.2015 12:18
Как сделать что бы открывать и сохранять файлы можно было как обычно через мышку, а не через командную строку? beslan AutoCAD 1 17.10.2011 11:43
Через 25 лет стоимость эксплуатации превышает стоимость строительства ? Tyhig Архитектура 41 24.08.2011 11:00