В этом примере описывается методика получения информации на основе использования
класса System.Environment, входящего в состав .Net framework.
В .Net framework есть часто используемый класс, предоставляющий информацию о текущем
окружении и платформе. Это System.Environment.
Ниже показан пример с использованием внешнего компонента Elisy.NetBridge.dll, который
показывает в 1С (7.7/8.0/8.1/8.2) среди прочего следующую информацию:
- Командную строку вызова 1С и аргументы командной строки;
- Переменные окружения;
- Путь к каталогам: текущий, системный и временный;
- Выключается в данный момент компьютер или нет;
- Имя пользователя домена и название компьютера;
- Версию Windows;
- Имя пользователя;
- Список логических дисков;
Ниже приведенный листинг скрипта 1С:Предприятие интуитивно понятен и демонстрирует работу со свойствами и методами класса System.Environment.
AttachAddIn("AddIn.ElisyNetBridge");
AddIn = New("AddIn.ElisyNetBridge");
net = AddIn.New("Elisy.NetBridge", "Elisy.ElisyNetBridge");
Сообщить("Командная строка: " + net.GetStatic("System.Environment", "CommandLine"));
аргументы = net.CallStatic("System.Environment", "GetCommandLineArgs");
Сообщить("Аргументы командной строки: " + net.CallStatic("System.String", "Join", "; ", аргументы));
Сообщить("Текущий каталог: " + net.GetStatic("System.Environment", "CurrentDirectory"));
Сообщить("Код возврата: " + net.GetStatic("System.Environment", "ExitCode"));
Сообщить("Начат процесс выключения компьютера: " + net.GetStatic("System.Environment", "HasShutdownStarted"));
Сообщить("Название компьютера: " + net.GetStatic("System.Environment", "MachineName"));
Сообщить("Версия ОС: " + net.GetStatic("System.Environment", "OSVersion").ToString());
Сообщить("Системный каталог: " + net.GetStatic("System.Environment", "SystemDirectory"));
Сообщить("Число миллисекунд с момента включения компьютера: " + net.GetStatic("System.Environment", "TickCount"));
Сообщить("Имя пользователя домена: " + net.GetStatic("System.Environment", "UserDomainName"));
Сообщить("Процесс запущен в интерактивном пользовательском режиме: " + net.GetStatic("System.Environment", "UserInteractive"));
Сообщить("Имя пользователя: " + net.GetStatic("System.Environment", "UserName"));
Сообщить("Версия CLR: " + net.GetStatic("System.Environment", "Version").ToString());
Сообщить("Памяти выделено процессу: " + net.GetStatic("System.Environment", "WorkingSet"));
запрос = "Системный диск %SystemDrive%, а корневая папка системы %SystemRoot%";
сообщение = net.CallStatic("System.Environment", "ExpandEnvironmentVariables", запрос);
Сообщить("Вызов ExpandEnvironmentVariables: " + сообщение);
Сообщить("Вызов GetEnvironmentVariable: Каталог временных файлов - " + net.CallStatic("System.Environment", "GetEnvironmentVariable", "TEMP"));
Сообщить("Вызов GetEnvironmentVariables: ");
переменныеОкружения = net.CallStatic("System.Environment", "GetEnvironmentVariables");
enumerator = переменныеОкружения.GetEnumerator();
Пока enumerator.MoveNext() Цикл
Сообщить(enumerator.Key + " = " + enumerator.Value);
КонецЦикла;
диски = net.CallStatic("System.Environment", "GetLogicalDrives");
Сообщить("Логические диски: " + net.CallStatic("System.String", "Join", "; ", диски));
//Начиная с версии Elisy .Net Bridge v.2.2
Сообщить("Вызов GetFolderPath - получение каталога рабочего стола: " + net.CallStatic("System.Environment", "GetFolderPath", net.New("System.Environment+SpecialFolder").DesktopDirectory));
Сообщить("Вызов GetFolderPath - получение каталога ""Мои документы"": " + net.CallStatic("System.Environment", "GetFolderPath", net.New("System.Environment+SpecialFolder").MyDocuments));
Сообщить("Вызов GetFolderPath - получение каталога временных файлов Интернет: " + net.CallStatic("System.Environment", "GetFolderPath", net.New("System.Environment+SpecialFolder").InternetCache));