Schöck
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

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

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

OKJI вне форума Вставить имя

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

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

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

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


Замени (VL-REGISTRY-READ "HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Control\\ComputerName\\ComputerName") на (VL-REGISTRY-READ "HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Control\\ComputerName\\ComputerName" "ComputerName")
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей 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
С.-Петербург
Сообщений: 36,224


#17
__________________

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

AutoLISP
 
Регистрация: 19.06.2018
Харьков
Сообщений: 91
Отправить сообщение для 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
Сообщений: 250


Цитата:
Сообщение от Кулик Алексей 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
С.-Петербург
Сообщений: 36,224


Вызови cmd (ком.строку Windows) и дай там команду set - увидишь все системные переменные окружения, с которыми можно работать через getenv. И для них, кстати, регистр уже не важен (не помню, говорилось или нет).
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 15.01.2019, 21:02
#27
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,669
Отправить сообщение для 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
Просмотров: 17
Размер:	38.3 Кб
ID:	209953  
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)

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


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


А к 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
С.-Петербург
Сообщений: 36,224


По-моему, нет. И далеко не всегда на это у пользователей есть права
__________________

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


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


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


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


Может это вам надо?
Код:
[Выделить все]
 (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 вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум 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

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||