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

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

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

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

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

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

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

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


Получить имя компьютера: (getenv "computername")
Логин пользователя: (getenv "username"), если не ошибаюсь.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.06.2018, 16:02
1 | 1 #3
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Имя компьютера можно найти здесь:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability
Имя LastComputerName


HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName
Имя ComputerName Значение ...


Но в этой ветке AutoLisp бессилен.

Последний раз редактировалось Setvar, 27.06.2018 в 07:44.
Setvar вне форума  
 
Непрочитано 26.06.2018, 16:38
#4
Кулик Алексей aka kpblc
Moderator

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


Че ета "бессилен"? Прочитать можно. Но проще идти через переменные окружения.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.06.2018, 17:09
#5
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


У автора темы определенная цель:
Цитата:
Возникла необходимость привязать привязать программный модуль к конкретному компьютеру.
(getenv) ему не поможет.
AutoLisp НЕ может записывать в разделы HKEY_USERS и HKEY_LOCAL_MACHINE
Setvar вне форума  
 
Непрочитано 26.06.2018, 19:11
1 | 1 #6
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
привязать программный модуль к конкретному компьютеру
С помощью Lisp "отвязывается" еще проще, чем привязывается.
Даже не надо ковырять код.
ShaggyDoc вне форума  
 
Непрочитано 26.06.2018, 21:40
#7
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от Setvar Посмотреть сообщение
У автора темы определенная цель:

(getenv) ему не поможет.
AutoLisp НЕ может записывать в разделы HKEY_USERS и HKEY_LOCAL_MACHINE
Может. Если права у пользователя есть.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.06.2018, 06:37
#8
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Цитата:
Сообщение от Setvar Посмотреть сообщение
AutoLisp НЕ может записывать в разделы HKEY_USERS и HKEY_LOCAL_MACHINE
Это не я придумал, а вычитал у Полещука. Там про права ничего написано не было.
Решая задачу, аналогичную задаче автора темы, я использовал только раздел HKEY_CURRENT_USER.
Setvar вне форума  
 
Непрочитано 27.06.2018, 07:43
#9
Кулик Алексей aka kpblc
Moderator

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


Без чтения информации из реестра, в том числе и из HKLM, система просто не будет работать. Можешь сам поставить себе отдельного пользователя с правами чуть ли не гостя, разрешить ему вызов regedit.exe и посмотреть - получится прочитать хоть что-то из этого раздела или нет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.06.2018, 07:52
#10
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


При чем тут прочитать? Я же написал
AutoLisp НЕ может записывать в разделы HKEY_USERS и HKEY_LOCAL_MACHINE
А прочитать - пожалуйста.
Если хочется использовать ветку
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability
то желательно заранее узнать имя компьютера и сравнивать его со значением из указанной ветки.
Setvar вне форума  
 
Непрочитано 27.06.2018, 08:28
#11
Кулик Алексей aka kpblc
Moderator

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


Setvar, а вопрос изначально был в чтении, чтобы "привязать модуль к компу".
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.06.2018, 09:18
#12
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Алексей, название темы таково:
Где найти уникальное имя компьютера в реестре через AutoLISP
И вопрос явно был задан такой:
По какому адресу реестра можно найти какой нибудь уникальный номер или имя компа?
Автор темы упомянул ветку реестра HKEY_CURRENT_USER.
Я написал, что имя компьютера можно найти в другой ветке, но AutoLisp записывать значения в эту ветку не может.
Что не так?
Автор темы намерен, как я думаю, привязать некий модуль к компьютеру именно с помощью записи в реестр или вообще еще не знает как. Так что простого чтения реестра недостаточно.
P.S. (getenv) работает внутри AutoCAD, но имя компьютера не имеет никакого отношения к AutoCAD, поэтому искать имя компьютера через реестр логичнее.
Setvar вне форума  
 
Непрочитано 27.06.2018, 09:22
#13
Кулик Алексей aka kpblc
Moderator

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


Да ну???
(getenv "appdata")
(getenv "computername")
(getenv "programdata")
И что, хочешь сказать, что все это не работает?
Лисп может обращаться к переменным окружения, которые касаются не только ACAD, но и Windows. Некоторые он может поменять, некоторые - нет, но возможности прочитать хранящиеся там значения это не отменяет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 27.06.2018, 09:47
#14
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Да ну???
Это к чему относится? Или ты не допускаешь мысли, что компьютер имеет имя независимо от того, установлен AutoCAD или нет? Так вот, компьютеру присваивается имя при установке Windows, а не при установке AutoCAD. Если человек хочет использовать реестр для своих целей, то логичнее и имя компьютера искать через реестр (хоть и инструментами AutoLisp), только и всего.
Вон ShaggyDoc по существу вообще советует не страдать ерундой. Ну как же, все ведь пользователи семи пядей во лбу, как и он сам, так что все они немедленно отвяжут модуль от компьютера.
Setvar вне форума  
 
Непрочитано 27.06.2018, 10:32
#15
Кулик Алексей aka kpblc
Moderator

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


Setvar, ага, трава зеленая, небо голубое и т.д. Спорить надоело, будем считать, что ты абсолютно прав.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 27.06.2018, 11:07
#16
OKJI

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


Ух и жаркая на споры темка вышла!!!)))
Люди мне нужно было просто прочитать это уникальное имя компа...
Дальше я бы сделал для каждого компа кодированный ключ на основе уникального имени.
(Тоесть имя компа выступило параметром (переменной) ренератора кода)
без знания остальных параметров кода не получилось бы подделать этот код....
Все больно просто!)))
Сетвар и Кулик, спасибо вам за помощь!)))
OKJI вне форума  
 
Непрочитано 27.06.2018, 11:51
#17
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


http://adn-cis.org/forum/index.php?topic=2580.0
Boxa вне форума  
 
Автор темы   Непрочитано 27.06.2018, 14:19
#18
OKJI

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


Цитата:
Сообщение от Boxa Посмотреть сообщение
Что-то там много лишней инфы и надежного способа так и не нашли...
__________________
Вечность это:
 (while T)
OKJI вне форума  
 
Автор темы   Непрочитано 27.06.2018, 14:37
#19
OKJI

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


Цитата:
Сообщение от Setvar Посмотреть сообщение
Имя компьютера можно найти здесь:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliability
Имя LastComputerName


HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName
Имя ComputerName Значение ...


Но в этой ветке AutoLisp бессилен.
И так вот что получилось:
Код:
[Выделить все]
 (VL-REGISTRY-READ "HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Control\\ComputerName\\ComputerName")
"mnmsrvc" 
_$ 
Код:
[Выделить все]
 (VL-REGISTRY-READ "HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Control\\ComputerName\\ActiveComputerName")
nil 
_$ 
"mnmsrvc" - что-то вообще странное... не знаю откуда такое имя у ПК

По этой директории:
Код:
[Выделить все]
 (VL-REGISTRY-READ "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Reliability\\")
даёт нуль
но в ней есть ряд подразделов, в каждом из которых nil (((
Код:
[Выделить все]
 (VL-REGISTRY-DESCENDENTS "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Reliability\\")
_$ 

("RunHistory" "WinRE" "UserDefined" "Srt" "shutdown" "MemoryDiagnostic") 
__________________
Вечность это:
 (while T)

Последний раз редактировалось OKJI, 27.06.2018 в 14:44.
OKJI вне форума  
 
Непрочитано 27.06.2018, 15:15
1 | 1 #20
Setvar


 
Регистрация: 10.02.2007
Москва
Сообщений: 611


Слушай, OKJI, я ведь только привел примеры адресов в реестре, по которым можно найти название компьютера. Если же использовать функции VLisp, то записывать коды нужно так:
(VL-REGISTRY-READ "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Reliability" "LastComputerName")
или
(VL-REGISTRY-READ "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\ComputerName\\ActiveComputerName" "ComputerName")
Учи, как говорится, матчасть.
Setvar вне форума  
Ответ
Вернуться   Форум 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