Страница 1 из 1

Файлы совместимости

Добавлено: Ср ноя 24, 2010 17:20
Batya
Win 7 x32
TC 7.55a

Сегодня был озадачен.
TC не видит некоторые файлы (в данном случае в корне C:\). Естесственно, режим показа скрытых включён, исключения в настройках отключены.
Проверил, Far файлы видит.
Проводник файлы не видит. Случайно в проводнике увидел кнопку "Файлы совместимости". Проводник файлы увидел.

Посему вопрос - что такое "Файлы совместимости", и как их увидеть в TC?

Добавлено: Ср ноя 24, 2010 17:54
MVV
Ага, с этим я тоже сталкивался. Для некоторых старых программ виста и семерка творят жуткие вещи. Вместо того чтобы просто запретить им запись в, скажем, корень диска C:, они позволяют это сделать, но физически файлы создаются в другом месте, в специальной папке, в которой создается виртуальная структура диска с защищенными от записи директориями. Для реестра тоже вроде есть такая хрень.

Файлы хранятся по адресу:

Код: Выделить всё

C:\Users\<Юзер>\AppData\Local\VirtualStore\
При этом, эта папка соответствует корню диска C:. Для папок диска C: по этому пути создаются подпапки с соответствующими именами. Ну а упомянутая кнопка позволяет просмотреть эти файлы для текущей папки.

Каковы критерии программ, которые попадают под категорию, для которой эта штука используется, хрен знает. Замечено, что консольный архиватор 7-Zip под неё попадает. Т.е., например, при попытке создать архив в корне диска C: никакой ошибки не возникнет, архив будет успешно создан, его даже можно будет модифицировать, но нормальные программы его там никогда не увидят, т.к. на самом деле он будет располагаться в папке VirtualStore.

Эта папка входит в список папок, которые я заменяю точками соединения на физические папки на другом томие - чтобы отделить программы от данных (я все документы и нужные мне данные/настройки храню на другом томе, чтобы можно было беспрепятственно, скажем, делать и восстанавливать образ системного тома).

Добавлено: Ср ноя 24, 2010 18:05
Batya
MVV
Спасибо!

Добавлено: Ср ноя 24, 2010 18:20
CaptainFlint
MVV писал(а):Каковы критерии программ, которые попадают под категорию, для которой эта штука используется, хрен знает.
Манифест в EXE-шнике.

Добавлено: Ср ноя 24, 2010 18:27
MVV
Кстати, в своё время я писал маленькую утилитку для изменения начальной части пути, с её помощью можно упростить процесс перехода к нужной папке в тотале:

Код: Выделить всё

Path2Path.exe /C="%COMMANDER_PATH%\TOTALCMD.exe" /E /O /L /S C:\ "%USERPROFILE%\AppData\Local\VirtualStore"
"%P"
CaptainFlint писал(а):
MVV писал(а):Каковы критерии программ, которые попадают под категорию, для которой эта штука используется, хрен знает.
Манифест в EXE-шнике.
Всего-то... вообще не вижу в этом манифесте особого смысла, вполне можно обойтись без него. А тут вон оно как... Будем иметь в виду. :)

Добавлено: Ср ноя 24, 2010 19:14
CaptainFlint
MVV писал(а):вообще не вижу в этом манифесте особого смысла, вполне можно обойтись без него.
Кстати, и настройки UAC в нём же хранятся (например, чтобы приложение всегда автоматом требовало повышения привилегий, как какой-нибудь regedit). И указание на использование приложением тем оформления. Но это так, к слову.

Добавлено: Ср ноя 24, 2010 19:29
MVV
Ну про уровень прав я знаю - и мне не нравится, что программу, у которой стоит highestAvailable, нельзя запустить без повышения. А про темы оформления вообще не пойму - в манифесте ничего особенного не прописано, но без манифеста никаких тем нету. А что виртуализация записи включается именно для приложений без манифеста - не слышал.

Кстати, очень глупым считаю установку для regedit прав доступа highestAvailable - далеко не всегда требуется изменить системные параметры реестра, зачастую открываешь реестр (или запускаешь рег-файл) для внесения изменений исключительно в раздел текущего пользователя. А оно тупо запрашивает повышения, усиливая серьезность вносимых изменений.

Добавлено: Ср ноя 24, 2010 20:31
CaptainFlint
MVV писал(а):А про темы оформления вообще не пойму - в манифесте ничего особенного не прописано, но без манифеста никаких тем нету.
Там версия common controls прописана.
MVV писал(а):А что виртуализация записи включается именно для приложений без манифеста - не слышал.
В Тотале в своё время был добавлен соответствующий элемент в манифесте. Старые версии при попытке записать в Program Files тихо перенаправляются в VirtualStore, а новые, где появилась эта запись, явным образом выдают ошибку с возможностью повторения операции с повышением прав.

Добавлено: Чт ноя 25, 2010 00:32
Batya
Кстати, а как Far эти файлы показывает в моём случае в корне C:\? Это винда ему выдаёт или он сам так формирует?
Если сам, то может быть и в TC полезно такую фичу иметь (по ключу\настройке, конечно)?

Добавлено: Чт ноя 25, 2010 15:52
MVV
Видимо, у FAR нет манифеста (как писал CaptainFlint) - т.е. винда считает его устаревшим приложением. Следовательно, ему можно писать в закрытые для записи директории и ветви реестра, и это будет отражаться лишь в виртуализованных хранилищах. В данной ситуации я бы назвал это скорее багом FARа, чем фичей. :)