Сохранение/восстановление профилей и настроек в играх

(см. также опцию "VIP-клиенты"->"Перенаправление системных папок")
Часто бывают ситуации, когда пользователю нужно сохранить свои настройки в играх, чтобы потом через некоторое время к ним вернуться и продолжать игру, не заботясь о том, что кто-то другой удалит профиль его игрока или изменит настройки.
Специально для этого в шелле предусмотрена возможность удобного сохранения/восстановления настроек и профилей для программ и игр.
В свойствах ярлыка выберите файл с описанием настроек для игры. Предварительно такой файл нужно создать.
Далее пользователь будет просто выбирать пункт в контекстном меню ярлыка и использовать Drag&Drop совместно с проводником пользователя.
Таким образом, пользователь не имеет прямого доступа к файлам игры, а вместо этого быстро и удобно перепишет нужные данные.
Пример файла настроек показан ниже:

    ;------------------------
    ;
    ; Этот файл содержит примеры описания сохранений/восстановлений настроек или профилей игр/программ
    ;
    ; Файл состоит из секций (Section1, Section2, ... Section16)
    ; Каждая секция описывает соответствующий пункт контекстного меню ярлыка и определяет действия,
    ; которые будут произведены с данными.
    ; Все секции делятся на 2 типа: In (копирование данных в программу) и Out (копирование из программы).
    ; Переменные внутри секции задают ее поведение.
    ; В значениях переменных допускается использование подстановочных параметров:
    ; %MYDOCS% - папка "Мои документы" (обычно "C:\Documents and Settings\username\My Documents")
    ; %COMMON_DOCUMENTS% - папка "Общие документы" (обычно "C:\Documents and Settings\All Users\Documents")
    ; %LOCAL_APPDATA% - (обычно "C:\Documents and Settings\username\Local Settings\Application Data")
    ; %APPDATA% - (обычно "C:\Documents and Settings\username\Application Data")
    ; %COMMON_APPDATA% - (обычно "C:\Documents and Settings\All Users\Application Data")
    ; %DATE% - текущая дата в формате ГГГГ_ММ_ДД
    ; %TIME% - текущее время в формате ЧЧ_ММ
    ; %PARMn% - значение введенного пользователем параметра номер n (n=1..16)
    ; также допускается использование стандартных переменных окружения, например %WINDIR%
    ;
    ; Общие переменные для направлений In и Out:
    ; Direction=<направление> - задает направление (укажите In или Out)
    ; Title=<строка> - название секции и пункта меню
    ; Help=<строка> - строка помощи для пользователя, которая будет отображаться каждый раз при выборе пункта меню ярлыка
    ; ParmX=<строка> - задает название параметра, который будет вводиться пользователем (X=1..16)
    ; DefParmX=<строка> - задает значение параметра по умолчанию (X=1..16)
    ;    Например:   Parm1=введите имя игрока:
    ;                DefParm1=игрок1
    ;    Далее к значениям введеных параметров можно обращаться по их номеру: %PARM1%, %PARM2%....
    ; BaseFolder=<путь> - базовый путь, откуда или куда будут копироваться все файлы
    ;                     если пустой или не указан, то берется текущая директория игры/программы;
    ;                     если путь относительный, например "data\", то будет браться папка внутри директории программы;
    ;                     допускаются также и абсолютные пути или же пути с подстановочными параметрами;
    ;                     например: "%LOCAL_APPDATA%\Game\"
    ;                     или: "D:\Games\Steam\SteamApps\%PARM1%\"
    ;
    ; Переменные для направлений In (в программу):
    ; Quota=<размер_в_МБ> - задает максимальный размер копируемых данных в мегабайтах;
    ;                       если не указан или 0, значит размер не будет ограничиваться;
    ;                       допускаются только целые числа (1,2,3...)
    ; AllowedMasks=<mask1>;<mask2>;... - задает допустимые маски файлов для копирования,
    ;                                 это нужно для того, чтобы пользователь не скопировал "что-то лишнее";
    ;                                 если строка пуста или не указана, то разрешены все файлы;
    ;                                 Пример: AllowedMasks=*.sav;config.cfg;data?.dat;f*.fil
    ; InSource=<источник> - задает папку или файл для копирования в BaseFolder;
    ;                       если не указать или указать пустым, то пользователь сам будет выбирать свою папку
    ;                       или файл из проводника для копирования, однако бывает нужным не давать возможности
    ;                       пользователю копировать произвольные данные, а копировать данные из фиксированной
    ;                       папки или фиксированный файл. В этом случае укажите путь к файлу/папке;
    ;                       например: \\server\data\folder\
    ;                       использовать маски "*" и "?" здесь не разрешено!
    ;                       относительные пути здесь также не разрешены, используйте только абсолютные!
    ; Важно! В режиме копирования в программу разрешено копировать только один файл или одну папку,
    ; причем если выбрать папку, то будет скопировано все ее содержимое (рекурсивно)
    ; не включая само имя папки. Если же нужно включить имя папки, то установите переменную:
    ; CopyWithFolder=Yes
    ;
    ; Переменные для направлений Out (из программы):
    ; SaveAs=<название> - название папки (без путей!), под которой будут сохранены все данные (например, GAME_%DATE%)
    ; FileX=<имя_файла> - задает файлы или папки внутри базовой папки, которые будут копироваться (X=1..16);
    ;                     допускается использование масок "*" и "?"
    ;                     Например:
    ;                      File1=*.sav         - все файлы .sav
    ;                      File2=data\         - папка "data" со всем ее содержимым
    ;                      File3=%PARM2%.dat   - файл, имя которого зависит от введенного пользователем параметра
    ;                      File4=%PARM3%\*.cfg - все файлы .cfg в папке, имя которой вводит пользователь
    ;
    ; Ниже рассмотрены примеры:
    ;

    ; ----  Это пример для игры DOOM1 ----
    [Section1]
    Direction=Out
    Title=Сохранить профиль игрока DOOM
    Parm1=Номер слота (начиная с 0):
    DefParm1=0
    Parm2=Имя папки для сохранения:
    DefParm2=DOOM_%DATE%_%TIME%
    SaveAs=%PARM2%
    BaseFolder=
    File1=doomsav%PARM1%.dsg

    [Section2]
    Direction=In
    Title=Восстановить профиль игрока DOOM
    BaseFolder=
    Quota=1
    AllowedMasks=*.dsg

    [Section3]
    Direction=In
    Title=Переписать свои настройки в игру DOOM
    BaseFolder=
    Quota=1
    AllowedMasks=*.cfg
    ;----------------------------------------

    ; ----  Это пример для игры NFS Underground 2 (только образец) ----
    [Section5]
    Direction=Out
    Title=Сохранить профиль игрока NFS
    Parm1=Имя игрока:
    DefParm1=Игрок 1
    SaveAs=NFS_%DATE%
    BaseFolder=%LOCAL_APPDATA%\NFS Underground 2\
    File1=%PARM1%

    [Section6]
    Direction=In
    Title=Восстановить профиль игрока NFS
    BaseFolder=%LOCAL_APPDATA%\NFS Underground 2\
    Quota=2
    AllowedMasks=
    ;----------------------------------------