16.35.31. Макросы, допустимые в именах файлов
%WinDir% - путь к папке Windows (без \ на конце), аналог одноименной переменной окружения Windows
%SystemRoot% - путь к папке Windows (без \ на конце), аналог одноименной переменной окружения Windows
%System32% - заменяется на путь к папке System/System32 (без \ на конце)
%SysDisk% - системный диск в виде "X:" (без \)
%Tmp% - путь к папке для временных файлов
%PF% - путь к папке Program Files на системном диске (без \ на конце)
Начиная с версии 4.26 поддерживаются:
%SYSTEMDRIVE% - синоним %SysDisk%, системный диск в виде "X:", аналог одноименной переменной окружения Windows
%Personal% - путь к папке "Мои документы" текущего пользователя
%ProfileDir% - путь к папке, в которой размещаются профили пользователей
%USERPROFILE% - путь к папке с профилем текущего пользователя (берется из одноименной переменной окружения)
Начиная с версии 4.32 поддерживаются:
%allusersprofile% - путь к папке с профилем AllUsers (без \ на конце)
%AppData% - путь к папке Application Data текущего пользователя (без \ на конце)
%LocalSettings% - путь к папке Local Settings текущего пользователя (без \ на конце)
Начиная с версии 5.0 поддерживаются
%PF32% - путь к папке Program Files (x86)
Начиная с версии 5.97 поддерживаются
%Desktop% - путь к папке рабочего стола текущего пользователя
%Documents% - путь к папке "Мои документы" текущего пользователя, синоним %Personal%
%Favorites% - путь к папке избранное текущего пользователя
%Startup% - путь к папке Startup текущего пользователя, применяемой для автозапуска приложений
%CommonDesktop% - путь к папке рабочего стола, общей для всех пользователей
%CommonDocuments%- путь к папке "Мои документы", общей для всех пользователей
%CommonMusic% - общая для всех пользователей папка для музыки
%CommonPictures% - общая для всех пользователей папка для изображений
%CommonStartup% - общий для всех пользователей каталог Startup, применяемый для автозапуска приложений
На заметку:
Регистр символов макроса не учитывается, к примеру %SysDisk%, %SYSDISK% и %sysdisk% эквивалентны.
Примеры:
begin
AddToLog(NormalDir('%LocalSettings%'));
end.
Пример вывода в протокол данных по операционной системе и значения всех макросов:
procedure TestPath(S : string);
begin
AddToLog(S + ' = "' + NormalDir(S)+'"');
end;
// Добавление в протокол данных о версии ОС
procedure AddToLogVerionInfo;
var
S : string;
begin
S := RegKeyStrParamRead('HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion',
'ProductName');
S := S + ', Build='+
RegKeyStrParamRead('HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion',
'CurrentBuildNumber');
S := S + ', SP="'+
RegKeyStrParamRead('HKEY_LOCAL_MACHINE',
'SOFTWARE\Microsoft\Windows NT\CurrentVersion',
'CSDVersion')+'"';
AddToLog('$AVZ0101: '+S);
// Проверка, не работаем ли мы из терминальной сессии - это может повлиять на пути !
if ISNT then
if GetEnvironmentVariable('SESSIONNAME') <> '' then
if UpperCase(Trim(GetEnvironmentVariable('SESSIONNAME'))) <> 'CONSOLE' then
AddToLog('$AVZ1172 ('+GetEnvironmentVariable('SESSIONNAME')+')');
end;
begin
ClearLog;
AddToLogVerionInfo;
TestPath('%WinDir%');
TestPath('%SystemRoot%');
TestPath('%System32%');
TestPath('%SysDisk%');
TestPath('%Tmp%');
TestPath('%PF%');
TestPath('%SYSTEMDRIVE%');
TestPath('%personal%');
TestPath('%profiledir%');
TestPath('%userprofile%');
TestPath('%allusersprofile%');
TestPath('%AppData%');
TestPath('%localsettings%');
end.
См. также GetEnvironmentVariable