Как пропустить VirtualStore и прочитать файлы в папке Program Files?
У меня есть приложение c # на ПК с Windows 10. В папке установки (C: Program Files (x86) xxx) есть файлы настроек, которые я хочу прочитать, но не редактировать, если у пользователя нет прав администратора. Проблема в том, что Windows копирует эти файлы настроек в VirtualStore и перенаправляет туда все операции чтения, тогда как одно и то же приложение, запущенное от имени администратора, видит исходные файлы настроек в папке Program Files.
Мой вопрос: есть ли способ заставить приложение видеть исходные файлы в Program Files, даже если оно не запускается от имени администратора? Я просто хочу их читать, а не редактировать.
спросил 21 окт ’16 в 8:59
3 375 4 4 золотых значка 32 32 серебряных знака 51 51 бронзовый знак
Если вы их только читаете, в чем проблема с чтением скопированной версии этого файла?
Потому что при запуске от имени администратора вы можете редактировать их, но в этом случае он редактирует версии в папке с файлами программы, а не версии виртуального магазина. Таким образом, с точки зрения экземпляра, не являющегося администратором, файлы не изменяются.
程式入手小站-VB2019 Windows Forms視覺元件(04)-數值調整按鈕
В какой момент он копирует файлы?
Кажется, что Windows делает копию в виртуальном магазине в тот момент, когда экземпляр без прав администратора обращается к файлам.
Ваша программа несовместима с UAC. В наши дни это довольно сложно сделать, вам нужно задокументировать свою версию VS. И вам нужно объяснить свое утверждение «просто хочу их прочитать», когда программа явно также записывает файл.
Вам не нужны повышенные права для чтения файла из Program Files (x86) папки. Проверьте, как вы открываете файл для чтения. Вы должны указать разные FileAccess флаги в обычном пользовательском режиме и в повышенном режиме. В обычном пользовательском режиме его следует открывать с помощью FileAccess.Read:
Чтобы определить, работает ли приложение с повышенными разрешениями, используйте IsProcessElevated метод. В зависимости от результата вы можете выбрать подходящий FileAccess режим.
Создан 23 мая ’17 в 15: 192017-05-23 15:19
1 1 1 серебряный значок
ответил 26 октября ’16 в 15:11
6 016 2 2 золотых значка 23 23 серебряных знака 35 год 35 бронзовых знаков
Спасибо — я дважды проверю, правильно ли открываю файл.
Привет, Никита — мы дважды проверили — и мы были тупыми в другом разделе кода, где он неправильно открывал файлы. Теперь все исправлено. Спасибо,
1 ноя ’16 в 11:19
Способ увидеть исходные файлы в Program Files — не писать туда (и с этой целью открывать файлы только для чтения, как указывает Никита). VirtualStore предназначен не для использования, а для устранения проблем с приложениями. Такие проблемы вызваны, например, неисправными приложениями, написанными для старой однопользовательской Windows, когда текущая Windows (начиная с NT) может иметь несколько сеансов одновременно от разных пользователей.
Если приложение хочет изменить файлы данных, совместно используемые всеми пользователями, оно должно сохранить файлы в профиле всех пользователей. Если это пользовательские данные, он может хранить данные в папке Application Data в профиле пользователя. В данных приложения вы по-прежнему можете выбрать, хотите ли вы, чтобы данные были в роуминге или локально.
Where is my file? (VirtualStore folder)
Пути к этим папкам различаются в разных версиях Windows. Установщик Windows имеет свойства, установленные для путей. У приложений есть множество интерфейсов, которые они могут использовать. См. Работа с известными папками в приложениях и SHGetKnownFolderPath для одного интерфейса.
В остальном доступ к программным файлам находится за UAC . Вы должны прочитать его, чтобы получить все подробности.
Источник: www.stackfinder.ru
QT: файлы хранятся в папке VirtualStore в appdata
Мое приложение генерирует эскизы, а также базу данных sqlite.
После создания установщика inno setup и установки приложения в первый раз я обнаружил, что мои файлы создаются не в каталоге программы, а в каталоге VirtualStore.
Это желательно? Есть ли способ отключить это?
Проблема, с которой я сталкиваюсь, заключается в том, что после удаления программы файлы все еще находятся в этой подпапке VirtualStore … также я не уверен, что это ожидаемое поведение.
Решение
Ваш вопрос неясен, спрашивает ли он, как переместить файлы в ваш каталог или проблема действительно в том, что файлы создаются вне программы установки и, следовательно, не удаляются автоматически при удалении?
Я отвечу на вторую часть этого, исходя из того, что вы просто хотите, чтобы файлы удалялись при удалении, будь то они созданы в папке VirtualStore или в вашем собственном каталог, они все равно не будут удалены при удалении приложения. Это связано с тем, что программа удаления, которая создается автоматически во время установки, не знает об этих файлах. Чтобы решить эту проблему, просто добавьте следующий раздел и строку в ваш скрипт:
[UninstallDelete] ;Define files and folders that were not created by the installer to be deleted on uninstall Type: filesandordirs; Name: «VirtualStore»
Если местоположение, которое я интерпретировал из вашего вопроса, неверно, просто измените путь. Вы можете добавить несколько записей в этот раздел, чтобы позаботиться об удалении файлов, которые не были установлены изначально, но были созданы после установки. Обратитесь к документации для получения более подробной информации.
Другие решения
Проблема, с которой я сталкиваюсь, заключается в том, что после удаления программы файлы
все еще в этой подпапке
InnoSetup не удаляет файлы, созданные приложением после установки при удалении по умолчанию. Он отслеживает созданные файлы и удаляет только те.
Однако это не вопрос Qt.
Источник: web-answers.ru
Все вопросы по теме virtualstore
Я конвертирую набор устаревших 32-разрядных приложений C++ для работы под Windows 10. Эти приложения могут работать под разными учетными записями пользователей на одном ПК и должны обмениваться данными между собой и всеми пользователями. Некоторые приложения являются службами Windows, некоторые — о.
13 Окт 2022 в 15:15
У меня есть программа, которая читает GetPrivateProfileString из файла «. Abcd.ini», то есть ищет ini-файл в текущем каталоге. Если он не находит ini-файл, он имеет значение по умолчанию, установленное в третьем параметре на GetPrivateProfileString. У меня есть установщик, который устанавливает пр.
1 Авг 2017 в 13:00
У меня есть приложение C # на ПК с Windows 10. В папке установки (C: Program Files (x86) xxx) есть файлы настроек, которые я хочу прочитать, но не редактировать, если у пользователя нет прав администратора. Проблема в том, что Windows копирует эти файлы настроек в VirtualStore и перенаправляет.
21 Окт 2016 в 11:59
Я разработал приложение с VS2010 и установочное развертывание с IS Limited Edition. Приложение предоставляет некоторые данные в виде XML-файла, который установлен в той же папке. Если приложение вносило изменения в XML-файл, он сохранялся в virtualStore. Сейчас я использую VS2015 и Wix Toolset. П.
29 Дек 2015 в 03:48
Я устанавливаю приложение и хочу установить значения для ini-файла. К сожалению, наше основное приложение по-прежнему построено на платформе, которая перенаправляется в виртуальный магазин. Есть ли способ заставить Inno Setup напрямую хранить ini-файл в виртуальном хранилище.
4 Мар 2015 в 00:55
Я пишу интерфейс для устаревшего приложения, которое читает данные из каталога Windows. Поэтому мне нужно записать данные в каталог Windows. (Операционная система Windows 8) Я использую приведенный ниже код, чтобы получить путь к папке Windows для записи файла. Path.Combine(Environment.GetFolderPat.
21 Апр 2014 в 10:14
[Я отправил этот вопрос 2 месяца назад и не получил никаких ответов . и, очевидно, проблема все еще актуальна, и мы собираемся выпустить новую версию нашего приложения, поэтому сейчас я пишу некоторую документацию, чтобы заставить пользователей удалить какие-либо записи в виртуальном магазине — т.
11 Фев 2014 в 20:32
Мое приложение хранит файлы журналов в месте, которое, в зависимости от настроек администратора, может быть перенаправлено в папку в VirtualStore. Иногда они заканчиваются, например: Файл журнала находится в: C:Users-my username-AppDataLocalVirtualStoreProgram Files (x86) *my-application* l.
13 Дек 2013 в 20:02
Я использую C # с .net 2.0 Я сохраняю данные моей программы в файле под: C:ProgramDataMyProgramNamefileName.xml После установки и запуска моего приложения один раз я удалил его (во время удаления я удаляю все файлы из «данных программы»), а затем переустанавливаю приложение и запускаю его. Странн.
5 Авг 2013 в 17:11
С момента выпуска Win Vista Microsoft представила виртуализацию файлов для устаревших приложений, работающих как 32-битные процессы. Выпущенные как часть контроля учетных записей Microsoft (UAC), любые устаревшие приложения, пытающиеся выполнить запись в любые места, которые считаются защищенными о.
22 Дек 2012 в 21:44
Я создал установку Install Shield 2009, которая устанавливает несколько файлов в C: Program Files. При работе в Windows 7 установка работает отлично. Однако при удалении файлы удаляются из C: Program Files, НО не удаляются из VirtualStore автоматически. Есть ли способ сделать это, не удаляя ф.
15 Окт 2012 в 17:48
У меня есть собственная программа-установщик, которую я использую для установки нескольких написанных мною приложений. Я обновлял эту программу, чтобы избежать попадания обновлений файла данных приложения в VirtualStore пользователя, так как я прочитал, что это «плохо». Я делаю это, сохраняя файлы .
24 Июн 2012 в 18:00
Наконец-то мы добрались до перемещения документов нашего программного обеспечения из собственного каталога программы в «Мои документы». Мы также добавляем в манифест строку «requestedPrivileges», чтобы предотвратить дальнейшие проблемы с виртуализацией. Однако, если бы мы сделали только это, то люб.
15 Мар 2011 в 18:42
У меня проблемы с пониманием виртуализации VirtualStore операций реестра в Vista и / или Windows 7. Я подумал, что попытка записать что-то в корень HKEY_LOCAL_MACHINE при работе от имени обычного пользователя заставит Windows виртуализировать операцию и написать на HKEY_CURRENT_USER / Classes / .
24 Янв 2011 в 02:16
Я бы хотел, чтобы моя программа выдавала ошибку при попытке создать файлы в защищенных местах, таких как корень диска C: (например: FILE* FileHandle = fopen(«\file.txt», a)). Вместо этого файл создается в виртуальном хранилище под% APPDATA%. Как я могу отключить этот виртуальный магазин? Благода.
19 Янв 2011 в 02:01
Я создал одно приложение в Vista, которое работает с правами администратора. Я пытаюсь скопировать один файл в папку ProgramDataApplication. Но вместо того, чтобы копировать туда его копирование в местоположении c:UsersXXXAppDataLocalVirtualStoreProgramDataApplication Я не хочу, чтобы этот.
5 Июн 2010 в 15:43
У нас есть приложение, которое хранит файлы своей базы данных в подпапке каталога Program Files. Эти файлы перенаправляются в VirtualStore в Vista и Windows 7. Мы представляем данные из базы данных с помощью Microsoft DataReports (VB6). Все идет нормально. Но теперь мы хотим использовать Crystal R.
25 Апр 2010 в 12:55
Предположим, что UAC включен. Это не создает проблем с его выключением. У меня есть приложение С # с функцией резервного копирования / восстановления и с использованием sql server 2005 express. Код для получения backupPath используется как для резервного копирования, так и для восстановления, а имя.
24 Фев 2009 в 17:35
У меня есть небольшое приложение в трее, которое хочет писать в свою собственную папку в каталоге Program Files. Я знаю, что это не идеальный дизайн, и я исправлю его, но сначала я хочу понять, как это работает. Запустив это на 32-битной машине Vista, он записывает файлы в VirtualStore и работает т.
6 Фев 2009 в 13:42
При первой установке моя программа помещает файл в пользовательский каталог AppData, и затем программа будет периодически записывать в этот файл. Проблема заключается в том, что в Vista запись производится не в файл в пользовательском каталоге AppData, а в копию этого файла в каталоге «VirtualStore.
Источник: question-it.com
Особенности установки программ для ОС Windows 7 и 8
Программе нужен полный доступ в папку, где она будет установлена. Если Вы не знаете точно, имеется ли такой доступ, мы рекомендуем устанавливать программу в корень диска C:. При этом в корне диска C: будет создана папка с программой, например «Межевой план» (или, например, «Детский сад Питание»).
Но на некоторых компьютерах не хватает прав доступа (даже в корне диска C:), и возникает проблема: установленная программа была зарегистрирована, но после перезапуска программы и/или перезагрузки компьютера программа вновь требует код регистрации. Данная проблема возникает на компьютерах с операционными системами Windows 7 и Windows 8.
Для решения данной проблемы Вы можете установить и запустить программу с правами администратора. Для этого запустите дистрибутив программы (установочный файл), выполнив следующие действия [1]:
1. Нажмите правой кнопкой мыши на файл дистрибутива, который Вы скачали с нашего сайта из своего Личного кабинета:
Операционная система Windows 8, программа «Полигон: Межевой план».
Операционная система Windows 7, программа «Детский сад: Питание».
2. В открывшемся меню выберите строку «Запуск от имени администратора»,
3. Далее выполните установку программы.
4. После установки программу необходимо всегда запускать с правами администратора. Для этого зайдите в папку, где установлена программа, нажмите правой кнопкой мыши на файл программы (например, pmp.exe) и выберите в меню пункт «Свойства»:
Операционная система Windows 7, программа «Полигон: Межевой план».
Операционная система Windows 7, программа «Детский сад: Питание».
В открывшемся окне перейдите на вкладку «Совместимость» и в пункте «Уровень привилегий (прав)» установите галочку «Выполнять эту программу от имени администратора».
«Свойства», Windows 8.
«Свойства», Windows 7.
Если данные действия не привели к нужному результату, необходимо открыть права доступа в папку, куда Вы установили программу, для этого:
1. Перед тем как выполнить регистрацию программы (ввести код регистрации), установите полный доступ к папке с программой.
Например, скачиваете дистрибутив программы, устанавливаете ее (подробнее описано в Руководстве пользователя) и, перед тем как ввести код ответа, полученный на нашем сайте, устанавливаете права доступа.
Для этого найдите папку с программой, нажмите на неё правой кнопкой мыши и выберите пункт «Свойства»:
Операционная система Windows 8, программа «Полигон: Межевой план».
В открывшемся окне перейдите на вкладку «Безопасность» и нажмите на кнопку « Изменить »:
Windows 8, «Полигон: Межевой план».
Windows 7, «Детский сад: Питание».
Затем установите полный доступ к папке у нужного пользователя, проставив галочки в столбце «Разрешить». Нажмите «Применить», далее – «ОК»:
Windows 8, «Полигон: Межевой план».
Windows 7, «Детский сад: Питание».
Примечание: если Вы не знаете, под каким пользователем Вы работаете, то разрешите доступ к папке для всех пользователей.
2. Далее зарегистрируйте программу (подробнее о регистрации программ описано в Руководстве пользователя).
После выполнения действий, описанных выше, необходимо перенести файлы, которые сохранились во временной папке при первой регистрации программы и при работе с программой.
На компьютерах с операционными системами Windows 7/8 файлы могут сохраняться в папке, которая находится:
C:Users(учётная запись)AppDataLocalVirtualStoreProgram Files (х86)Детский сад Питание (Межевой план или в папке любой другой программы).
Внимание: так же файлы могу сохраняться в папках Roaming (папка находится в папке AppData) или Temp (папка находится в папке Local)
Примечание 1: папка Users может называться Пользователи.
Примечание 2: папка Program Files называется так в 32-разрядной операционной системе, а в 64-разрядной операционной системе – Program Files(x86).
Примечание 3: папка AppData является скрытой, поэтому необходимо воспользоваться файловым менеджером (например, Total Commander [2] и др.) или выполнить следующее:
– для Windows 8: открыть папку «Компьютер», выбрать на панели инструментов меню «Вид» и установить галочку «Скрытые элементы»:
Зайдите в папку, где были сохранены файлы (например: AppDataLocalTempМежевой план), и скопируйте файлы в папку, где установлена программа:
– для Windows 7: открыть папку «Компьютер», выбрать на панели инструментов меню Упорядочить – Параметры папок поиска в открывшемся окне перейти на вкладку «Вид» и в разделе «Дополнительные параметры» установить флажок «Показывать скрытые файлы, папки и диски»:
Далее нажмите «Применить»:
- название программы, версию программы;
- какая операционная система установлена на Вашем компьютере;
- куда установлена программа;
- опишите кратко данную проблему.
- специалисты технической поддержки постараются решить Вашу проблему.
[1] Рассмотрим порядок действий в Windows 8 на примере программы «Полигон: Межевой план» и в Windows 7 на примере программы «Детский сад: Питание».
[2] В Total Commander выберите меню Вид – Расширенные настройки , далее нажмите Показывать скрытые/системные файлы: вкл/выкл.
Итоги практикума «Управление современным детским садом: от учета посещаемости до анализа развития детей»
Новая версия программы «Полигон Про» от 12.12.2022 г.
Источник: pbprog.ru