Сообщество программистов Autodesk в СНГ

Разное => Разное => Тема начата: altver от 31-10-2022, 16:05:59

Название: UUID уникальный идентификатор компьютера
Отправлено: altver от 31-10-2022, 16:05:59
Добрый день, уважаемые программисты!
КАК в Delphi
или  в С++
получить UUID уникальный идентификатор компьютера?
Заранее благодарен!
Название: Re: UUID уникальный идентификатор компьютера
Отправлено: Алексей Кулик от 31-10-2022, 22:20:57
Стесняюсь спросить - что значит "уникальный ID компьютера"? У HDD свой ID, у процессора - свой. MAC-адрес вообще уникален и завязан, насколько я помню, вообще на сетевую карту.
Название: Re: UUID уникальный идентификатор компьютера
Отправлено: altver от 31-10-2022, 22:55:07
У меняесть лисп, который опредеяет идентификатор компьютера, однако мне необходимо это определять не на языке ЛИСП, а в Delphi или  в С++.
Прилагаю ЛИСП, который это определяет.
Название: Re: UUID уникальный идентификатор компьютера
Отправлено: altver от 31-10-2022, 22:55:34
Код - 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. )
Название: Re: UUID уникальный идентификатор компьютера
Отправлено: Алексей Кулик от 01-11-2022, 00:15:18
Так вроде гугл еще работает?
https://www.google.com/search?q=C%23+WbemScripting.SWbemLocator
https://www.google.com/search?q=C%2B%2B+WbemScripting.SWbemLocator&sxsrf=ALiCzsZhGhyDXI4xHRcc9kaL4Z71aM1-nQ%3A1667250748439&ei=PDpgY8K8GqyTwPAPk_OBiAc&ved=0ahUKEwjCyvKEsYv7AhWsCRAIHZN5AHEQ4dUDCA4&uact=5&oq=C%2B%2B+WbemScripting.SWbemLocator&gs_lcp=Cgxnd3Mtd2l6LXNlcnAQAzIECAAQHjoHCAAQHhCwAzoFCAAQogRKBAhBGAFKBAhGGABQvQdYxAhgrg1oAXAAeACAAViIAa8BkgEBMpgBAKABAcgBAcABAQ&sclient=gws-wiz-serp
https://www.google.com/search?q=delphi+wbemscripting.swbemlocator&sxsrf=ALiCzsbJwvTrEGNJziGYJ_WtYQE4sNqOYA%3A1667250845554&ei=nTpgY7-4IYv9qwGLr4vQBw&oq=%D0%92%D1%83%D0%B4%D0%B7%D1%80%D1%88+WbemScripting.SWbemLocator&gs_lcp=Cgxnd3Mtd2l6LXNlcnAQAxgAMgYIABAeEA06BwgAEB4QsAM6BQgAEKIESgQIQRgBSgQIRhgAUOURWJsiYKQyaAFwAHgAgAFqiAGIBJIBAzQuMpgBAKABAcgBAcABAQ&sclient=gws-wiz-serp
P.S. Варианты не проверял и не смотрел, ибо лично мне такое пока что нафиг не упало.
Название: Re: UUID уникальный идентификатор компьютера
Отправлено: altver от 01-11-2022, 20:30:05
Спасибо за помощь!
Это я тже нашел, однако, к сожалению, не владею ни Delphi, ни С++...
поэтому и попросил помощи...
Мне надо запустить на произвольном компютере файл и получить UUID этого компютера.
Это вообще возмжно?
Название: Re: UUID уникальный идентификатор компьютера
Отправлено: Александр Ривилис от 06-11-2022, 20:10:06
altver,
Настоятельно не рекомендую надеяться, что приведенный выше lisp-код будет работать. И даже если его переписать на C+/C#, то политика безопасности Windows скорее всего запретит выполнение этого кода.
Название: Re: UUID уникальный идентификатор компьютера
Отправлено: Алексей Кулик от 06-11-2022, 23:46:01
Так вроде бы тут просто выборка, без попыток записи / обновления? Или и на такое могут быть ограничения?
Название: Re: UUID уникальный идентификатор компьютера
Отправлено: Александр Ривилис от 07-11-2022, 00:23:45
Алексей Кулик,
Ограничение возможно на уровне WbemScripting - т.е. он может быть запрещен, так как потенциально опасен.
Название: Re: UUID уникальный идентификатор компьютера
Отправлено: Алексей Кулик от 07-11-2022, 00:54:59
Ох ты ж е-мое... Ну да, безопасники - они такие.
Название: Re: UUID уникальный идентификатор компьютера
Отправлено: doctorRAZ от 07-11-2022, 09:34:41
Возможно это поможет
Код - 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.