Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Вниз

Пресловутый переход на висту   Найти похожие ветки 

 
KSergey ©   (2007-11-23 09:44) [0]

Суть задачи: есть программа, представляющая из себя набор exe/dll + различные файлы конфигураций/данных, которые этой программой читаются/пишутся.
Исторически, понятно, программа пишет это все в тот же каталог где и сама рсположена. В реестр при этом не пишется программой ничего своего - все в файлах.
Таким положением вещей все довольны (пользователи в том числе), и вот почему: есть реальная потребность эту программу легко приносить с собой на флешке (например), переписать на компьютер, поработать - и снова с собой унести текущее состояние для использования на другом комьютере (например - ноутбук).

Таким образом, хотелось бы получить работоспособную конфигурацию программы в таком виде:
1) Не используем реестр для хранения настроек;
2) Должна быть возможность хранить все файлы программы в одном каталоге, при этом иметь к части из них доступ на запись. При этом программа должна мочь работать из любой папки где удобно пользователю (и куда у него есть права на запись).

Я знаю только одно готовое средство в Висте для этого: на ярлыке программы указать "совместимость" (или как оно тама зовется? Сорри, нету у меня под рукой). Ну либо вовсе отключить эту службу проверки.

Вопрос: есть ли другие возможности в Висте сделать так, чтобы указаные условия выполнялись?

PS
Что касается того, что "это не работат в корпоративной среде" - работает, но делается иначе: часть файлов программой грузится не из каталога программы, а из текущего на момент запуска :)


 
oldman ©   (2007-11-23 10:26) [1]

Извини за тупость, у меня Висты нет, но:

А что, под нее надо искать свое программное обеспечение или все ранее работающие проги запускать в режиме совместимости???


 
Рамиль ©   (2007-11-23 10:45) [2]


> А что, под нее надо искать свое программное обеспечение
> или все ранее работающие проги запускать в режиме совместимости?
> ??

Не надо, почти все программы, написанные правильно под Windows XP, нормально идут под вистой (прикладные, исключая управление микшерами).
У автора написана неправильно, поэтому и проблемы:)


 
KSergey ©   (2007-11-23 11:44) [3]

> Рамиль ©   (23.11.07 10:45) [2]
> У автора написана неправильно, поэтому и проблемы:)

Именно так.
Но в этой "неправильности" - как раз кайф в данном случае. Потому так подробно и раписал.
Впрочем, быть может это все можно организрвать иначе, просто "мужики не зают"?


 
TIF ©   (2007-11-23 14:50) [4]

ДА, ПИСАТЬ ПОД ВИСТУ МЫ НЕ УМЕЕМ И ВИДИМО ТАКИМИ ТЕМПАМИ И НЕ НАУЧИМСЯ, ТАК КАК НЕ ХОТИМ!

Я, как специалист по совместимости приложений в висте :-), уже полазил по нужным сайтам, где есть всё - начиная от структуры ядра и закакнивая пресловутой UAC, которая многих не удовлетворяет.

Итак, что же советует сама Микрософт?

Vista - это удар под дых тем программистам, которые считают, что все юзеры так же как они, пренебрегают безопасностью и ВСЁ делают под учётной записью администратора. Если у вас учётная запись администратора, вам можно запросто спалить процессор меньше чем за 0,5 сек. Мой друг уже этому научился :-). Поэтому Виста решает эти проблемы.

Раньше большинство неправильно написанных прграмм работали всё равно правилно, так как многие работали под админом, но в всите большое внимание уделили проблеме безопасности: проги не должны лазить в WINDOWS, Program Files и в HKLM, так как это уже походит на поведение вирусов, поэтому нормальная программа должна всё хранить в доступном юзеру (и другим юзерам) месте, но не в системной директории. Раньше папка виндоуз по этой причине могла занимать на диске до 10ГБ! из-за того, что многие проги совали туду что попало: архивы, резервные копии, ини-файлы о прочую нечисть.

Итак, если у вас на компе работает старая прога, виста, ВИРТУАЛИЗИРУЕТ СИСТЕМНЫЕ РАЗДЕЛЫ, к которым будет обращаться программа, то есть если она полезет в папку виндоуз, то система подсунет ей папку C:\Users\имя_юзера\AppData\Local\VirtualStore\Windows\

Также и с реестром.

А если по-нормальному, по правилам нужно всё хранить в специальных разделах реестра или в локал апп дата

"Приложение может работать с разными учетными записями пользователей и поэтому должно хранить данные пользователей в соответствующих им каталогах %AppData%, а параметры, относящиеся к данному пользователю — в профиле пользователя в разделе реестра HKEY_CURRENT_USER\Software. Учетные записи обычного пользователя не имеют доступа для записи к каталогу %ProgramFiles% и разделу HKEY_LOCAL_MACHINE\Software. Однако, поскольку большинство систем Windows является однопользовательскими, а большинство пользователей вплоть до Windows Vista были администраторами, то приложения, даже если неправильно сохраняли пользовательские данные и параметры в этих местах, в любом случае работали."

ЧИТАЕМ СТАТЬЮ И БЛАГОДАРИМ МИКРОСОФТ ЗА ПРЕДОСТАВЛЕНИЕ ПОЛЕЗНОЙ ИНФОРМАЦИИ:

http://www.microsoft.com/technet/technetmag/issues/2007/06/UAC/default.aspx?loc=ru/


 
Eraser ©   (2007-11-23 14:52) [5]


> KSergey ©   (23.11.07 09:44) 

просто нужно добавить вистовский манифест в ресурсы экзешника, там указать, чтобы при запуске требовала права админа (которые нужны были и в xp, только там если пользователь - админ, то и права у него админские). все должно работать.


 
TIF ©   (2007-11-23 14:58) [6]


> просто нужно добавить вистовский манифест в ресурсы экзешника,
>  там указать, чтобы при запуске требовала права админа (которые
> нужны были и в xp, только там если пользователь - админ,
>  то и права у него админские). все должно работать.


про манифест и его параметры в статье ТОЖЕ НАПИСАНО :-)


 
ыы   (2007-11-23 15:29) [7]


> Раньше папка виндоуз по этой причине могла занимать на диске
> до 10ГБ! из-за того, что многие проги совали туду что попало:
>  архивы, резервные копии, ини-файлы о прочую нечисть
Теперь она это может по совершенно иным причинам? %-)


 
Anatoly Podgoretsky ©   (2007-11-23 15:48) [8]

> ыы  (23.11.2007 15:29:07)  [7]

С нечистыми к церкви, у них много вековой опыт борьбы с нечистыми.


 
Dmitry S ©   (2007-11-23 16:36) [9]

А что, подождать еще чуть-чуть и можно на висту переходить:)


 
KSergey ©   (2007-11-26 10:13) [10]

> Eraser ©   (23.11.07 14:52) [5]
> просто нужно добавить вистовский манифест в ресурсы экзешника,
>  там указать, чтобы при запуске требовала права админа

Хм, метод в чем-то из серии "отключить UAC вовсе". Не совсем кузявый, конечно. Ну т.е. симтоматику в каком-то смысле он снимает, конечно (хотя бы - несколько автоматизирует ее штатными средствами), однако как таковых админских правов программе не требуется... Ну кроме как писать в свой каталог :)

К стати, а может есть смысл создать некоего пользователя с каким-нибудь не админсткими правами так, чтобы запущенная из-под него программа эта корректно работала? Есть такой вариант?



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.036 c
15-1195679426
Alral
2007-11-22 00:10
2007.12.23
Справка по сетевым компонентам Turbo Delphi


2-1196154909
Quart
2007-11-27 12:15
2007.12.23
массив


5-1164376036
Priest
2006-11-24 16:47
2007.12.23
При размещении компонента на форме, занести его в коллекцию


15-1195835332
Piter
2007-11-23 19:28
2007.12.23
Зачем InnoSetup требует права администратора?


4-1176447569
Dmitry_177
2007-04-13 10:59
2007.12.23
Перевести SYSTEMTIME в строку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский