UUID уникальный идентификатор компьютера

Автор Тема: UUID уникальный идентификатор компьютера  (Прочитано 7093 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 118
  • Карма: 2
Добрый день, уважаемые программисты!
КАК в Delphi
или  в С++
получить UUID уникальный идентификатор компьютера?
Заранее благодарен!

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1097
  • Карма: 172
Стесняюсь спросить - что значит "уникальный ID компьютера"? У HDD свой ID, у процессора - свой. MAC-адрес вообще уникален и завязан, насколько я помню, вообще на сетевую карту.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 118
  • Карма: 2
У меняесть лисп, который опредеяет идентификатор компьютера, однако мне необходимо это определять не на языке ЛИСП, а в Delphi или  в С++.
Прилагаю ЛИСП, который это определяет.

Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 118
  • Карма: 2
Код - Auto/Visual Lisp [Выбрать]
  1. (defun  c:Get_UUID (/ LocatorObj ServiceObj ObjectSetObj UUID)
  2.   (setq LocatorObj
  3.          (vlax-create-object "WbemScripting.SWbemLocator")
  4.   )
  5.   (setq ServiceObj
  6.          (vlax-invoke
  7.            LocatorObj 'ConnectServer nil nil nil nil nil nil nil nil)
  8.   )
  9.   (setq ObjectSetObj
  10.          (vlax-invoke
  11.            ServiceObj
  12.            'ExecQuery
  13.            "SELECT UUID FROM Win32_ComputerSystemProduct"
  14.          )
  15.   )
  16.   (vlax-for Obj ObjectSetObj
  17.     (setq UUID
  18.            (vlax-get Obj 'UUID)
  19.     )
  20.   )
  21.   (foreach Obj
  22.                (list LocatorObj ServiceObj ObjectSetObj)
  23.     (and Obj (vlax-release-object Obj))
  24.   )
  25.   UUID
  26. )
« Последнее редактирование: 06-11-2022, 20:07:05 от Александр Ривилис »


Оффлайн altverАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 118
  • Карма: 2
Спасибо за помощь!
Это я тже нашел, однако, к сожалению, не владею ни Delphi, ни С++...
поэтому и попросил помощи...
Мне надо запустить на произвольном компютере файл и получить UUID этого компютера.
Это вообще возмжно?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
altver,
Настоятельно не рекомендую надеяться, что приведенный выше lisp-код будет работать. И даже если его переписать на C+/C#, то политика безопасности Windows скорее всего запретит выполнение этого кода.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1097
  • Карма: 172
Так вроде бы тут просто выборка, без попыток записи / обновления? Или и на такое могут быть ограничения?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Алексей Кулик,
Ограничение возможно на уровне WbemScripting - т.е. он может быть запрещен, так как потенциально опасен.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1097
  • Карма: 172
Ох ты ж е-мое... Ну да, безопасники - они такие.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн doctorRAZ

  • ADN OPEN
  • Сообщений: 42
  • Карма: 0
  • Skype: doctorraz
Возможно это поможет
Код - C# [Выбрать]
  1.  
  2.         private static void Main()
  3.         {
  4.             //https://stackoverflow.com/questions/29750894/how-to-retrieve-wmi-data-such-as-uuid-from-a-c-sharp-program
  5.             try
  6.             {
  7.                 string ComputerName = "localhost";
  8.                 ManagementScope Scope;
  9.                 Scope = new ManagementScope(String.Format("\\\\{0}\\root\\CIMV2", ComputerName), null);
  10.                 Scope.Connect();
  11.                 ObjectQuery Query = new ObjectQuery("SELECT UUID FROM Win32_ComputerSystemProduct");
  12.                 ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Scope, Query);
  13.  
  14.                 foreach (ManagementObject WmiObject in Searcher.Get())
  15.                 {
  16.                     Console.WriteLine("{0,-35} {1,-40}", "UUID", WmiObject["UUID"]);// String                    
  17.                 }
  18.             }
  19.             catch (Exception e)
  20.             {
  21.                 Console.WriteLine(String.Format("Exception {0} Trace {1}", e.Message, e.StackTrace));
  22.             }
  23.             Console.WriteLine("Press Enter to exit");
  24.             Console.Read();
  25.       }
  26.