Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.23;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.013 c
15-1195867805
SerJaNT
2007-11-24 04:30
2007.12.23
Помогите составить SQL-запрос


1-1191583482
312kbps
2007-10-05 15:24
2007.12.23
Событие при выходе из приложения


15-1195808646
Ega23
2007-11-23 12:04
2007.12.23
Где сейчас можно купиь 5 лицензий на


1-1191498439
Kerk
2007-10-04 15:47
2007.12.23
Количество бит в байте


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