Clarion & VirtualStore

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Clarion & VirtualStore

Сообщение Игорь Столяров »

Привет всем ! :)

Столкнулся с наинеприятнейшей ситуацией ... :(
Программа по умолчанию устанавливается в папку C:\Program Files\MySoft\
Там же и создает БД (TPS).

Пользователь, что-то наворотил с ограничениями прав в Windows,
в результате Windows все операции записи перенесла в виртуальное хранилище
C:\Users\KOZLOV\AppData\Local\VirtualStore\Program Files\MySoft
Все работало прекрасно много лет ... и никто об это не знал.

Ну а когда пользователь перенес папку на другой компьютер - в ней
естественно данных не оказалось. :( Хотя все функции внутри программы
показывали, что файлы БД находятся C:\Program Files\MySoft\

Вопрос: Есть ли какие-то функции WinAPI которые позволят получить
реальное расположение файла на диске, с учетом переадресации в VirtualStore ?
Make Clarion Great Again ! 😎
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

Clarion & VirtualStore

Сообщение RaFaeL »

Это не "наворотил", это штатная работа
Поэтому уже несколько как штатно ставим в C:\MySoft\...
Если хочешь "по уму" то базу надо держать не в Program Files а в %ProgramData% или как то так
Микрософт считает, что изменяемые пользователем данные не следует держать в каталоге с программными файлами
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Clarion & VirtualStore

Сообщение Игорь Столяров »

RaFaeL писал(а): Это не "наворотил", это штатная работа
Странно ... а где я курил пока этот прикол стал штатным ? ;)
И почему я его нигде раньше не наблюдал (включая свои и еще с пол-сотни обслуживаемых компьютеров) ?
Make Clarion Great Again ! 😎
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion & VirtualStore

Сообщение Developer »

RaFaeL писал(а): Если хочешь "по уму" то базу надо держать не в Program Files а в %ProgramData%
Или Users\%UserName%\Application Data\%ApplicationName% - где у пользователя (не администратора) полные права доступа.

Эта политика разграничения программного кода и информационной базы пришла вместе с выходом Windows Vista :wink:

Предпосылки перехода на такую модель были ещё с Windows XP


http://www.sql.ru/forum/1113342/virtual ... etoy-papke
С Уважением, Developer
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Clarion & VirtualStore

Сообщение Игорь Столяров »

Developer писал(а): где у пользователя (не администратора) полные права доступа
Все это очень даже здорово ... для локальной работы.
А если нужно расшарить программу для работы в сети или под терминальной сессией ?
(столь любимой некоторыми разработчиками на Clarion)
Make Clarion Great Again ! 😎
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion & VirtualStore

Сообщение Developer »

Игорь Столяров писал(а): Все это очень даже здорово ... для локальной работы.
А если нужно расшарить программу для работы в сети или под терминальной сессией ?
(столь любимой некоторыми разработчиками на Clarion)
Application хранить в Program Files или C:\MySoft или
Users\%UserName%\AppData\Roaming - её же и "расшарить"

Database хранить вне Program Files в любом месте - её же и "расшарить" - как раз с такими проблемами описанными в заголовке темы столкнулся в первый раз с Windows 7 :wink:
С Уважением, Developer
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Clarion & VirtualStore

Сообщение Игорь Столяров »

Developer писал(а): Users\%UserName%\AppData\Roaming - её же и "расшарить"
Не, ну я не совсем из леса вышел ... ;) В указанной Вами папке, индивидуально для каждого
пользователя мы храним рабочие данные, например те же настойки колонок списков.
Но что туда будут МОЛЧА И БЕЗ ОШИБОК перенаправлены файлы БД - сюрприз !
Ну нет у пользователя прав на запись в Program Files - выдайте ошибку и нет проблем.

Я в далекое время изучал в универе программирование на языке PL/1 для IBM370 (и ЕС1045).
В нем была сделана очень страшная вещь - компилятор, который сам молча исправлял некоторые ошибки.
После этого найти почему криво выполняется расчет было практически нереально ... ;)
Последний раз редактировалось Игорь Столяров 05 Апрель 2017, 17:55, всего редактировалось 1 раз.
Make Clarion Great Again ! 😎
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion & VirtualStore

Сообщение Developer »

Игорь Столяров писал(а): Пользователь, что-то наворотил с ограничениями прав в Windows,
в результате Windows все операции записи перенесла в виртуальное хранилище
C:\Users\KOZLOV\AppData\Local\VirtualStore\Program Files\MySoft
Все работало прекрасно много лет ... и никто об это не знал.
Так и теряются пользовательские базы данных :idied:
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion & VirtualStore

Сообщение Developer »

Игорь Столяров писал(а): Ну нет у пользователя прав на запись в Program Files - выдайте ошибку и нет проблем.
Это специальное действие и политика Microsoft при отсутствии прав пользователя :mrgreen:
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion & VirtualStore

Сообщение Developer »

Игорь Столяров писал(а): Я в далекое время изучал в универе программирование на языке PL/1 для IBM370 (и ЕС1045).
В нем была сделана очень страшная вещь - компилятор, который сам молча исправлял некоторые ошибки.
После этого найти почему криво выполняется расчет было практически нереально ...
Искусственный интеллект :mrgreen:
С Уважением, Developer
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

Clarion & VirtualStore

Сообщение RaFaeL »

Игорь Столяров писал(а): Странно ... а где я курил пока этот прикол стал штатным ? И почему я его нигде раньше не наблюдал (включая свои и еще с пол-сотни обслуживаемых компьютеров) ?
Значит, все под "админами" работают. А под "пользователем" вот такая ерунда. Запусти программу "от имени администратора" и будет писать куда ты хочешь. И еще, если ты помнишь, какое-то время назад был разговор про права запуска в манифесте, по умолчанию программа запускается и спрашивает права, так вот если отключить все это и поставить asInvoker то она не спрашивает, но ведет себя вот так. Верни в манифесте опцию назад, там еще можно сделать чтобы только с правами админа и запускалась, сразу эту проблему решит. Правда, возникнет другая, ну так это же пользователей проблема, хотят работать - пусть все под админами сидят. ни к чему нам эти микрософтовские заморочки ))
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8028
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Clarion & VirtualStore

Сообщение Игорь Столяров »

RaFaeL писал(а): Правда, возникнет другая, ну так это же пользователей проблема, хотят работать - пусть все под админами сидят.
Есть еще вариант купить сертификат разработчика Microsoft и подписывать им программы ...
Если не ошибаюсь, цена вопроса порядка $450 / год + услуги местных продаванов ...
Make Clarion Great Again ! 😎
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion & VirtualStore

Сообщение Developer »

RaFaeL писал(а): Правда, возникнет другая, ну так это же пользователей проблема, хотят работать - пусть все под админами сидят. ни к чему нам эти микрософтовские заморочки ))
В организациях, где есть серьёзный подход к безопасности и сеть с доменной структурой и наличием системного администратора такой вариант невозможен :mrgreen:
С Уважением, Developer
Ответить