Имя: Пароль:
1C
 
v8: Бесполезности для XP (WMI, WSH)
0 goodfella
 
25.07.05
12:01
Logs=ПолучитьCOMОбъект("winmgmts:!\\.\root\cimv2");
Items=Logs.ExecQuery("Select * from Win32_OperatingSystem");
для каждого Item из Items цикл
   Сообщить("BootDevice:"+Item.BootDevice);
   Сообщить("BuildNumber:"+Item.BuildNumber);
   Сообщить("BuildType:"+Item.BuildType);
   Сообщить("Caption:"+Item.Caption);
   Сообщить("CodeSet:"+Item.CodeSet);
   Сообщить("CountryCode:"+Item.CountryCode);
   Сообщить("CreationClassName:"+Item.CreationClassName);
   Сообщить("CSCreationClassName:"+Item.CSCreationClassName);
   Сообщить("CSDVersion:"+Item.CSDVersion);
   Сообщить("CSName:"+Item.CSName);
   Сообщить("CurrentTimeZone:"+Item.CurrentTimeZone);
   Сообщить("Debug:"+Item.Debug);
   Сообщить("Description:"+Item.Description);
   Сообщить("Distributed:"+Item.Distributed);
   Сообщить("EncryptionLevel:"+Item.EncryptionLevel);
   Сообщить("ForegroundApplicationBoost:"+Item.ForegroundApplicationBoost);
   Сообщить("FreePhysicalMemory:"+Item.FreePhysicalMemory);
   Сообщить("FreeSpaceInPagingFiles:"+Item.FreeSpaceInPagingFiles);
   Сообщить("FreeVirtualMemory:"+Item.FreeVirtualMemory);
   Сообщить("InstallDate:"+Item.InstallDate);
   Сообщить("LargeSystemCache:"+Item.LargeSystemCache);
   Сообщить("LastBootUpTime:"+Item.LastBootUpTime);
   Сообщить("LocalDateTime:"+Item.LocalDateTime);
   Сообщить("Locale:"+Item.Locale);
   Сообщить("Manufacturer:"+Item.Manufacturer);
   Сообщить("MaxNumberOfProcesses:"+Item.MaxNumberOfProcesses);
   Сообщить("MaxProcessMemorySize:"+Item.MaxProcessMemorySize);
   Сообщить("Name:"+Item.Name);
   Сообщить("NumberOfLicensedUsers:"+Item.NumberOfLicensedUsers);
   Сообщить("NumberOfProcesses:"+Item.NumberOfProcesses);
   Сообщить("NumberOfUsers:"+Item.NumberOfUsers);
   Сообщить("Organization:"+Item.Organization);
   Сообщить("OSLanguage:"+Item.OSLanguage);
   Сообщить("OSProductSuite:"+Item.OSProductSuite);
   Сообщить("OSType:"+Item.OSType);
   Сообщить("OtherTypeDescription:"+Item.OtherTypeDescription);
   Сообщить("PlusProductID:"+Item.PlusProductID);
   Сообщить("PlusVersionNumber:"+Item.PlusVersionNumber);
   Сообщить("Primary:"+Item.Primary);
   Сообщить("ProductType:"+Item.ProductType);
   Сообщить("QuantumLength:"+Item.QuantumLength);
   Сообщить("QuantumType:"+Item.QuantumType);
   Сообщить("RegisteredUser:"+Item.RegisteredUser);
   Сообщить("SerialNumber:"+Item.SerialNumber);
   Сообщить("ServicePackMajorVersion:"+Item.ServicePackMajorVersion);
   Сообщить("ServicePackMinorVersion:"+Item.ServicePackMinorVersion);
   Сообщить("SizeStoredInPagingFiles:"+Item.SizeStoredInPagingFiles);
   Сообщить("Status:"+Item.Status);
   Сообщить("SuiteMask:"+Item.SuiteMask);
   Сообщить("SystemDevice:"+Item.SystemDevice);
   Сообщить("SystemDirectory:"+Item.SystemDirectory);
   Сообщить("SystemDrive:"+Item.SystemDrive);
   Сообщить("TotalSwapSpaceSize:"+Item.TotalSwapSpaceSize);
   Сообщить("TotalVirtualMemorySize:"+Item.TotalVirtualMemorySize);
   Сообщить("TotalVisibleMemorySize:"+Item.TotalVisibleMemorySize);
   Сообщить("Version:"+Item.Version);
   Сообщить("WindowsDirectory:"+Item.WindowsDirectory);
Конеццикла;

Вышеуказанный код возвращает кучу нужной и ненужной инфы по операционной системе. Тестировалось в XP prof, но вроде в 2000 тоже должно работать.
1 Ferz
 
25.07.05
12:29
поумничаю
Проще
For Each objProperty In Items
Сообщить(objProperty.Name & vbTab &  objProperty.Value)
next
2 Ferz
 
25.07.05
12:32
в 2000 работает однако надо смотреть права
3 goodfella
 
25.07.05
12:35
(1) Чего-то не работает так в 1С.
4 Ferz
 
25.07.05
12:37
работает примерно так в семерке
только там средствами SC формируешь строку
а потом 1с из этой строки вытаскиваешь значения
вообще мож дело в этом "& vbTab &"
5 goodfella
 
25.07.05
12:38
(4) Покажи, как Items определяешь.
6 Ferz
 
25.07.05
12:43
(5) Измени
For Each objProperty In Items.Properties_
Сообщить(objProperty.Name & vbTab &  objProperty.Value)
next
7 Ferz
 
25.07.05
12:43
.Properties_
Забыл дописать:)))
8 goodfella
 
25.07.05
13:04
(6)(7) Покажи полный код для v8.

Если ты имеешь ввиду что-нибудь типа:
Logs=ПолучитьCOMОбъект("winmgmts:!\\.\root\cimv2:Win32_OperatingSystem");
Сообщить("----------Свойства-----------");
Items=Logs.Properties_();
для каждого Item из Items цикл
  Сообщить(Item.Name);
Конеццикла;
То здесь Item.Value возвращает пустую строку.
9 Ferz
 
25.07.05
13:08
для каждого Item из Logs.ExecQuery("Select * from Win32_OperatingSystem") цикл
для каждого objProperty из Item.Properties_
Сообщить(objProperty.Name & vbTab &  objProperty.Value)
next
next
10 Ferz
 
25.07.05
13:13
Смотри на проклубе там есть похожая обработка
для 8  получает свова всех классов для (.).
11 goodfella
 
25.07.05
13:33
(9) С этим разобрался, вот для восьмерки код:
Класс="Win32_OperatingSystem";
Logs=ПолучитьCOMОбъект("winmgmts:!\\.\root\cimv2");
для каждого ItemName из Logs.ExecQuery("Select * from "+Класс) цикл
   для каждого Item из ItemName.Properties_() цикл
       Сообщить(Item.Name+" - "+Item.Value);
   конеццикла;
Конеццикла;
12 goodfella
 
25.07.05
13:35
(10) Обработку с проклуба не видел, но у меня получилось так:
Logs=ПолучитьCOMОбъект("winmgmts:!\\.\root\cimv2");
Classes=Logs.SubclassesOf();
Для каждого Class из Classes цикл
   Cl=Class.Path_.Path;
   Класс=Сред(Cl,Найти(Cl,":")+1);
   Сообщить("---------------------------------");
   Сообщить(Класс);
   для каждого ItemName из Logs.ExecQuery("Select * from "+Класс) цикл
       для каждого Item из ItemName.Properties_() цикл
           ОбработкаПрерыванияПользователя();
           Сообщить(Item.Name+" - "+Item.Value);
       конеццикла;
   Конеццикла;
конеццикла;

P.S. Работает очень долго :-)
13 Ferz
 
25.07.05
14:07
ftp://80.73.192.43/files/computersysteminformation.epf
Да циклы бы поменять местами
14 Ferz
 
25.07.05
14:08
15 goodfella
 
25.07.05
14:11
(14) Спасибо, это я видел, даже книжка Михайлова есть.
16 Winston
 
25.07.05
15:05
Гы. Прикольно параметры системы. Я себе отчетик по пользователям пытаюсь написать, 8.0 только начинаю изучать. Вот пока такую простенькую задачу нашел.
17 Winston
 
25.07.05
15:06
Гы. Прикольно параметры системы. Я себе отчетик по пользователям пытаюсь написать, 8.0 только начинаю изучать. Вот пока такую простенькую задачу нашел.
18 France
 
25.07.05
15:07
(16) ты издеваешся?.. смени ник...
19 WMI
 
25.07.05
15:16
Если интересно, что такое WMI (а разговор в ветке касается в основном этой технологии), посмотрите сюда:
http://www.script-coding.info/WMI.html
P.S. Это не единственная статья по WMI на этом сайте.
20 Ferz
 
25.07.05
15:26
21 goodfella
 
25.07.05
15:45
(19) Разговор не только о WMI, а об использовании возможностей Windows в 1с8.0

Например, эта команда уводит курсор в правый нижний угол экрана:
ЗапуститьПриложение("rundll32.exe USER32.dll, SetCursorPos");
22 WMI
 
25.07.05
15:47
(21) А зачем нужно в 1с8.0 так нехорошо поступать с курсором? :)
23 goodfella
 
25.07.05
15:49
(22) Так просто. :-) Поэтому название темы "Бесполезности".
24 goodfella
 
26.07.05
09:12
Получаем переменные Windows XP:
WSH=Новый COMobject("wscript.shell");
Сообщить(WSH.ExpandEnvironmentStrings("%NUMBER_OF_PROCESSORS%"));
Сообщить(WSH.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%"));
Сообщить(WSH.ExpandEnvironmentStrings("%PROCESSOR_IDENTIFIER%"));
Сообщить(WSH.ExpandEnvironmentStrings("%PROCESSOR_LEVEL%"));
Сообщить(WSH.ExpandEnvironmentStrings("%PROCESSOR_REVISION%"));
Сообщить(WSH.ExpandEnvironmentStrings("%OS%"));
Сообщить(WSH.ExpandEnvironmentStrings("%COMSPEC%"));
Сообщить(WSH.ExpandEnvironmentStrings("%HOMEDRIVE%"));
Сообщить(WSH.ExpandEnvironmentStrings("%HOMEPATH%"));
Сообщить(WSH.ExpandEnvironmentStrings("%PATH%"));
Сообщить(WSH.ExpandEnvironmentStrings("%PATHEXT%"));
Сообщить(WSH.ExpandEnvironmentStrings("%PROMPT%"));
Сообщить(WSH.ExpandEnvironmentStrings("%SYSTEMDRIVE%"));
Сообщить(WSH.ExpandEnvironmentStrings("%SYSTEMROOT%"));
Сообщить(WSH.ExpandEnvironmentStrings("%WINDIR%"));
Сообщить(WSH.ExpandEnvironmentStrings("%TEMP%"));
Сообщить(WSH.ExpandEnvironmentStrings("%TMP%"));