Приветствую, коллеги
У меня к вам просьба, - запустить макрос, и скопировать в свой ответ результат работы макроса из окна Immediate
Хочу узнать, на всех ли компах будет работать, и как медленно выполняется код.
(код планируется использовать на тысячах самых разных компов)
Важно! При первом запуске макроса, он выполняется гораздо медленнее, чем при последующих,
потому мне хотелось бы увидеть результат вывода после ПЕРВОГО запуска макроса.
Собственно, код:
Вставьте код в любой модуль, нажмите Ctrl + G (чтобы отобразить окно Immediate),
потом поставьте курсор в макрос, и нажмите F5 для запуска макроса.
В окне Immediate появится результат типа такого, - вот он меня и интересует:
PS: Если не затруднит, - напишите время (последняя строка вывода) повторного запуска макроса (например, time = 0,22 сек.), и какая версия Windows у вас установлена.
Заранее спасибо)
У меня к вам просьба, - запустить макрос, и скопировать в свой ответ результат работы макроса из окна Immediate
Хочу узнать, на всех ли компах будет работать, и как медленно выполняется код.
(код планируется использовать на тысячах самых разных компов)
Важно! При первом запуске макроса, он выполняется гораздо медленнее, чем при последующих,
потому мне хотелось бы увидеть результат вывода после ПЕРВОГО запуска макроса.
Собственно, код:
Код |
---|
Sub test_WMI() On Error Resume Next: Err.Clear Dim obj As Object, DriveID$, PartName$, t As Double: t = Timer With GetObject("winmgmts:{impersonationLevel=Impersonate}!//.") For Each obj In .ExecQuery("ASSOCIATORS OF {Win32_LogicalDisk.DeviceID='" & Environ("SystemDrive") & "'} WHERE AssocClass = Win32_LogicalDiskToPartition"): PartName$ = obj.DeviceID: Next For Each obj In .ExecQuery("ASSOCIATORS OF {Win32_DiskPartition.DeviceID='" & PartName$ & "'} WHERE AssocClass = Win32_DiskDriveToDiskPartition"): DriveID$ = obj.DeviceID: Next For Each obj In .ExecQuery("SELECT * FROM Win32_DiskDrive WHERE DeviceID='" & Replace(DriveID$, "\", "\\") & "'"): Debug.Print obj.Caption, obj.Signature: Next For Each obj In .ExecQuery("SELECT * FROM Win32_BaseBoard"): Debug.Print "Материнская плата: " & obj.SerialNumber: Next Debug.Print "Partition = " & PartName$, "DriveID = " & DriveID$: Debug.Print "time = " & Format(Timer - t, "0.00 сек.") If Err Then Debug.Print "error " & Err.Number, Err.Description End With End Sub |
Вставьте код в любой модуль, нажмите Ctrl + G (чтобы отобразить окно Immediate),
потом поставьте курсор в макрос, и нажмите F5 для запуска макроса.
В окне Immediate появится результат типа такого, - вот он меня и интересует:
Цитата |
---|
WDC WD10EZRX-00A8LB0 ATA Device -458719218 Материнская плата: MS1C64B15802714 Partition = Disk #1, Partition #0 DriveID = \\.\PHYSICALDRIVE1 time = 1,28 сек. |
Заранее спасибо)