Мы команда разработчиков системного программного обеспечения.

Мы дружим с ИТ-компаниями, работающими в сфере технического аутсорсинга,
и наши идеи позволяют автоматизировать работу системных администраторов.

Наша цель – дать коллегам по цеху инструменты, упрощающие им работу.

Описание программы WallpaperSysInfo

Эта программа предназначена для установления в качестве картинки на рабочий стол изображения содержащего системную информацию о компьютере.

Ключи запуска

Wallpapersysinfo.exe [-c <Конфигурационный файл>]

При запуске программа берёт настройки из конфигурационного файла указанного после ключа «-с». Если приложение запускается без параметров, оно предполагает, что конфигурационный файл лежит в каталоге рядом с исполняемым модулем, за имя конфигурационного файла берётся имя исполняемого модуля с расширением «.ini». Если конфигурационный файл не будет обнаружен, приложение завершит работу не выдав ни каких сообщений и не выполнив ни каких действий.

Параметры конфигурационного файла

Конфигурационный файл программы должен содержать перечень секций заключенных в квадратные скобки и в каждой [СЕКЦИИ] может содержаться произвольное количество строк вида ПАРАМЕТР=ЗНАЧЕНИЕ. Также в каждой секции может быть указан параметр представленный символом «@», его значение отображается как значение всей секции.

При запуске программа осуществляет анализ содержимого секций и формирует картинку из двух колонок, в которые заносит значения из конфигурационного файла. Затем это изображение может видоизмениться согласно параметрам установленным в секции [main] и затем оно будет размещено на рабочем столе. Например:

[Section1]
@=Section 1 description
Param1=Value1
Param2=Value2

[Section2]
@=Section 2 description
Param3=Value3
Param4=Value4

Значения параметров могут содержать макросы. Это предопределённые константы которые содержат различную системную информацию. Для вставки макроса в качестве значения заключите его в знаки процента, например, так: %OSVersion%. Перечень всех доступных макросов с их описанием приведён в таблице 1.

Макрос Описание
%COMMONFILESFOLDER%Каталог программных файлов общего назначения
%CURRENTFOLDER%Текущий каталог
%PROGRAMFILESFOLDER%Каталог программных файлов
%WINDOWSFOLDER%Каталог Windows
%WINDOWSSYSTEMFOLDER%Системный каталог Windows
%WINDOWSTEMPFOLDER%Временный каталог текущего пользователя
%DESKTOPFOLDER%Путь к рабочему столу текущего пользователя
%PROGRAMSFOLDER%Каталог хранения ярлыков "Пуск\Программы"
%PERSONALFOLDER%Домашний каталог текущего пользователя
%FAVORITESFOLDER%Каталог "Избранное" текущего пользователя
%STARTUPFOLDER%Каталог "Автозагрузка" текущего пользователя
%RECENTFOLDER%Каталог ярлыков недавно открытых документов
%SENDTOFOLDER%Каталог ярлыков элементов меню "Отправить"
%STARTMENUFOLDER%Каталог ярлыков меню кнопки "Пуск" текущего пользователя
%DESKTOPDIRECTORYFOLDER%Путь к рабочему столу текущего пользователя
%COMMONDOCUMENTSFOLDER%Каталог общих документов всех пользователей
%NETHOODFOLDER%Каталог ярлыков сетевых ресурсов
%FONTSFOLDER%Каталог содержащий шрифты установленные в системе
%COMMONSTARTMENUFOLDER%Каталог ярлыков общего меню кнопки "Пуск"
%COMMONSTARTUPFOLDER%Каталог "Автозагрузка" общий для всех пользователей
%PRINTHOODFOLDER%Каталог хранящий ярлыки на принтеры установленные в системе
%PROFILEFOLDER%Каталог хранящий профиля пользователей
%COMMONPROGRAMSFOLDER%Каталог хранения ярлыков "Пуск\Программы" общих для всех пользователей
%COMMONDESKTOPDIRECTORYFOLDER%Путь к общему рабочему столу
%COMMONAPPDATAFOLDER%Каталог содержащей данные приложений для всех пользователей. Например: C:\Documents and Settings\All Users\Application Data
%APPDATAFOLDER%Каталог содержащей данные приложений пользователя. Например: C:\Documents and Settings\<имя пользователя>
%COMMONFAVORITESFOLDER%Каталог "Избранное" всех пользователей. Действует только для Windows NT систем.
%TEMPLATESFOLDER%Каталог шаблонов документов текущего пользователя
%INTERNETCACHEFOLDER%Каталог временных файлов приложения Internet Explorer текущего пользователя
%COOKIESFOLDER%Каталог хранящий Cookies-файлы приложения Internet Explorer текущего пользователя
%HISTORYFOLDER%Каталог хранящий историю посещённых страниц приложения Internet Explorer текущего пользователя
%DATE%Текущая дата
%DATELONG%Текущая дата читабельная
%TIME%Текущее время
%TICKCOUNT%Количество миллисекунд, прошедших с момента запуска системы
%LOCALCOMPUTERNAME%Локальное имя компьютера
%LOCALUSERNAME%Имя текущего пользователя
%DOMAINNAME%Имя домена
%LOCALWORKGROUP%Имя рабочей группы
%LASTSYSERROR%Последняя системная ошибка
%INTERACTIVEUSERSID%SID интерактивного пользователя
%PRIMARYIPADDRESS%Основной IP адрес
%EXENAME%Наименование файла текущего процесса
%EXEPATH%Полный путь расположения исполняемого файла текущего процесса
%CURPROCESSID%Идентификатор текущего процесса PID
%GUID%Сгенерировать уникальный глобальный идентификатор GUID
%UID%Сгенерировать уникальную строку
%CLIPBOARDASTEXT%Вернуть содержимое буфера обмена в виде текста
%BIOSVENDOR%Производитель BIOS
%BIOSVERSION%Версия BIOS
%BIOSRELEASEDATE%Дата выпуска релиза BIOS
%BASEBOARDMANUFACTURER%Производитель материнской платы
%BASEBOARDPRODUCT%Модель материнской платы
%BASEBOARDVERSION%Версия материнской платы
%BASEBOARDSERIALNUMBER%Серийный номер материнской платы
%CPUNAME%Наименование процессора
%TOTALPHYSICALMEMORY%Количество оперативной памяти (ОЗУ)
%SCREENWIDTH%Ширина экрана в пикселях
%SCREENHEIGHT%Высота экрана в пикселях
%SCREENBITSPERPIXEL%Количество бин на пиксель
%OSVERSION%Версия операционной системы
%NTPRODUCTTYPE%Тип операционной системы
%INSTALLDATETIME%Дата инсталляции операционной системы
%LASTBOOTDATETIME%Дата последней загрузки операционной системы
%PARAM0%Путь файла текущего процесса
%PARAM1%Первый параметр текущего процесса
%PARAM2%Второй параметр текущего процесса
%PARAM3%Третий параметр текущего процесса
%PARAM4%Четвертый параметр текущего процесса
%PARAM5%Пятый параметр текущего процесса
%PARAM6%Шестой параметр текущего процесса
%PARAM7%Седьмой параметр текущего процесса
%PARAM8%Восьмой параметр текущего процесса
%PARAM9%Девятый параметр текущего процесса
%PARAM10%Десятый параметр текущего процесса
%PARAMCOUNT%Количество параметров процесса

Таблица 1. Перечень доступных макросов.

После анализа значения заключённого в знаки процента на принадлежность к макросам происходит поиск этого значения в переменных окружения системы. Например:

[OS]
@=Two params
EnvironmentVariable=%ComSpec%
Macros=%NTPRODUCTTYPE%

Если значение параметра начинается со знака «?», то программа подразумевает, что далее следует текст на паскаль-подобном языке предназначенный для интерпретации. Соответственно это накладывает правила построения такого значения:

Это предоставляет больше возможностей по динамическому формированию значений, отображаемых на рисунке рабочего стола, в зависимости от результата выполнения различных функций. Описание функций доступных в таких значениях выходит за рамки данного документа. Перечень этих функций можно найти в документе «Перечень функций доступных для вызова в блоке "Установить значение переменной".pdf» продукта VisualBatch на сайте http://www.paut.ru. Например:
[Computer]
@=Two params
Memory=?BytesToString(%TotalPhysicalMemory%)
Work time=?MilliSecondsToString(GetTickCount64)

Секция [main]

В этой секции содержатся параметры определяющие расположение и стиль генерируемого изображения. Если параметр является логическим, то его значение может быть интерпретировано из нескольких вариантов:
Истинное значение 1, true, yes, да
Ложное значение 0, false, no, нет
Описание доступных параметров приведено ниже:

ShowCaption=[?<Script>]|<yes|no>

Логический параметр. Определяет необходимость отображения общего заголовка. По умолчанию имеет истинное значение.

Caption=[?<Script>]|<Текст заголовка>

Параметр содержащий текст общего заголовка. Если в качестве первого символа используется знак «?», то последующий текст будет интерпретироваться как паскаль-подобный скрипт.

Значение по умолчанию: «Системная информация. Время сборки: <Текущая дата и время>».

ShowHeader=[?<Script>]|<yes|no>

Логический параметр. Определяет необходимость отображения заголовков колонок. По умолчанию имеет истинное значение.

HeaderLeft=[?<Script>]|<Текст заголовка>

Параметр содержащий текст заголовка левой колонки. Если в качестве первого символа используется знак «?», то последующий текст будет интерпретироваться как паскаль-подобный скрипт.

Значение по умолчанию: «Параметр».

HeaderRight=[?<Script>]|<Текст заголовка>

Параметр содержащий текст заголовка правой колонки. Если в качестве первого символа используется знак «?», то последующий текст будет интерпретироваться как паскаль-подобный скрипт.

Значение по умолчанию: «Значение».

ShowValuesOnly=[?<Script>]|<yes|no>

Логический параметр. Определяет необходимость отображения только правой колонки содержащей значения. По умолчанию имеет значение No.

GridWidth=[?<Script>]|<Целое число>

Параметр содержит ширину информационного окна в пикселах. Значение по умолчанию устанавливается в половину ширины экрана.

GridLocationX=< SnapToLeft| SnapToRight | Center| Coordinate>

Параметр определяет положение информационного окна на экране по горизонтальной составляющей. Возможные значения:

Значение по умолчанию – Center.

GridLocationY=<SnapToTop| SnapToBottom | Center| Coordinate>

Параметр определяет положение информационного окна на экране по вертикальной составляющей. Возможные значения:

Значение по умолчанию – Center.

CoordinateX=[?<Script>]|<Целое число>

Параметр определяет фиксированную координату по горизонтальной составляющей в случае если параметр GridLocationX=Coordinate.

CoordinateY=[?<Script>]|<Целое число>

Параметр определяет фиксированную координату по вертикальной составляющей в случае если параметр GridLocationY=Coordinate.

BackgroundColor=[?<Script>]|<Целое число>

Параметр определяет цвет заливки фона рабочего стола. Значение по умолчанию: 10841658. Это число соответствует стандартному цвету рабочего стола для систем Windows.

BackgroundImage=[?<Script>]|<Имя файла>

Параметр может содержать путь к любому файлу изображения, которое будет браться как фоновое для наложения таблицы с системной информацией.

AlphaBlend=[?<Script>]|<0..255>

При наложении таблица с системной информацией может использовать уровни прозрачности от 0 до 255. Значение по умолчанию – 255, то есть без использования прозрачности.

PixelFormat=[?<Script>]|<8bit|16bit|24bit|Auto>

Параметр определяет глубину цвета генерируемого изображения, что напрямую влияет на его размер. При использовании параметра BackgroundImage рекомендуется сохранить глубину цвета фонового изображения, а при отрисовке таблицы со сплошной заливкой использовать минимальное значение.

Значение по умолчанию – Auto. В этом случае программа установит минимальную глубину цвета в зависимости от указанного фонового изображения.

Generate=[?<Script>]|<yes|no>

Параметр указывает на необходимость выполнения генерации фонового изображения. Предполагается, что в некоторых случаях необходимо принять решение о том, что генерация фонового изображения не требуется. Например: Пользователь с учётной записью в домене Windows осуществляет вход на сервер терминалов. При этом в его профиле прописано выполнение скрипта содержащего вызов данной программы. Тогда нет необходимости отображать пользователю внутри терминальной сессии информацию о параметрах сервера на котором он работает. Для этого укажите следующее: Generate=?Not IsRemoteSession.

Значение по умолчанию: yes.

Visible=[?<Script>]|<yes|no>

Если установить этот параметр в ложное значение, то фоновое изображение будет сгенерировано, но не выполнена его установка в качестве фона рабочего стола. Значение по умолчанию: yes.

Секция [network]

Это предопределённая секция позволяющая вставить полную информацию о сетевых устройствах и их адресах. В этой секции может быть объявлен один параметр: IPAddrCaption. Позволяющий изменить текст отображаемый в левой колонке для каждого IP адреса.

Особенности работы

Примеры конфигурационных файлов

Ниже приведены примеры конфигурационных файлов. В оба примера добавлена секция содержащая информацию о службе технической поддержки.

Полная информация

Пример детальной системной информации, наложенной на фоновое изображение.

[Компьютер]
@=%LocalComputerName%
Мат. плата=%BASEBOARDMANUFACTURER% %BASEBOARDPRODUCT% %BASEBOARDVERSION%
BIOS=%BIOSVENDOR% %BIOSVERSION% %BIOSRELEASEDATE%
Процессор=%CPUNAME%
Физическая память=?BytesToString(%TotalPhysicalMemory%)
Экран=%SCREENWIDTH%х%SCREENHEIGHT% %SCREENBITSPERPIXEL%бит
IP=%PrimaryIPAddress%
Время работы=?MilliSecondsToString(GetTickCount64)

[Система]
ОС=?'%OSVersion% ' + '%NtProductType% ' + iif(IsWindows64, 'x64', '')
Дата установки=%INSTALLDATETIME%
Имя домена или рабочей группы=?iif(UpperCase(GetDomainName) = UpperCase(GetLocalComputerName), 'Раб. группа: ' + '%LocalWorkgroup%', 'Домен: ' + '%LocalWorkgroup%')
Пользователь=?GetLocalUserName + iif(IsAdministrator, ' (Права локального администратора)', '')

[network]
@=Сетевые интерфейсы

[Служба технической поддержки]
Телефон инженера=тел. 8-900-1234567
Эл. почта=support@paut.ru

[main]
GridLocationX=SnapToRight
GridLocationY=SnapToTop
CoordinateX=300
CoordinateY=300
BackgroundColor=10841658
BackgroundImage=c:\Windows\Web\Wallpaper\Windows\img0.jpg
AlphaBlend=100
PixelFormat=24bit
ShowCaption=1
Caption=?Format('Системная информация. Время сборки: %s', [FormatDateTime('dd mmmm yyyyг. tt', Now)])
ShowHeader=1
HeaderLeft="Параметр"
HeaderRight="Значение"
ShowValuesOnly=0
GridWidth=?%ScreenWidth% div 2
Visible=True
Generate=?not IsRemoteSession

Результат работы программы:

Минимальная информация

Пример минимальной системной информации со сплошной заливкой.

[Компьютер]
@=%LocalComputerName%
Мат. плата=%BASEBOARDMANUFACTURER% %BASEBOARDPRODUCT% %BASEBOARDVERSION%
Процессор=%CPUNAME%
Физическая память=?BytesToString(%TotalPhysicalMemory%)
IP=%PrimaryIPAddress%
Время работы=?MilliSecondsToString(GetTickCount64)
ОС=?'%OSVersion% ' + '%NtProductType% ' + iif(IsWindows64, 'x64', '')
Имя домена или рабочей группы=?iif(UpperCase(GetDomainName) = UpperCase(GetLocalComputerName), 'Раб. группа: ' + '%LocalWorkgroup%', 'Домен: ' + '%LocalWorkgroup%')
Пользователь=?GetLocalUserName + iif(IsAdministrator, ' (Права локального администратора)', '')

[Служба технической поддержки]
Телефон инженера=тел. 8-900-1234567
Эл. почта=support@paut.ru

[main]
GridLocationX=SnapToRight
GridLocationY=SnapToTop
BackgroundColor=10841658
AlphaBlend=255
PixelFormat=8bit
ShowCaption=False
ShowHeader=False
GridWidth=?%ScreenWidth% div 3
Generate=?not IsRemoteSession

Результат работы программы: