![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Совместимость приложения! [D7]
Eeuwige Rouw © (2012-03-08 08:06:00)Здравствуйте!
Я использую Дельфи 7 (ОС Виста Ультимейт)...
Приложения, написанные мною, хорошо работают и на ХР, и на Висте
( на ранних версиях не проверялись ), но вот при запуске на Винде 7,
появляется сообщение о том, что программа (или может ее внешний вид),
не совместимо с темой рабочего стола Винды 7... и тут либо приложение
в режиме совместимости запускать, либо, как делает это Виста, система
сама отключает тему рабочего стола, на время работы программы...
Подскажите, есть ли способ этого избежать?
И, если есть, подскажите как...
Заранее благодарен за ответы!
sniknik (2012-03-09 11:40:00) [1]> Всё там предусмотрено...
при старте в пути программы...
if FileExists('....mdb' ) then CreateOrReplaceMdb('....mdb');
не будет пере создавать? или поиcк перенаправлен?
и тогда
if FileExists('....dll' ) then LoadDll('....dll');
не будет подключать? даже если она в папке присутствует?
т.е. взаимоисключающие конструкции (не такие уж и редкие) получаются. как оно там предусмотрено? для поиска dll сделано исключение?
Eraser (2012-03-09 04:32:00) [2]> [0] Eeuwige Rouw (08.03.12 08:06)
нужно переписать то, что не совместимо в Aero. просто так такое предупреждение не появляется.
Германн (2012-03-09 01:40:00) [3]
> Всё там предусмотрено...
Кроме всё ещё не совсем мёртвого BDE :)
CRLF (2012-03-09 00:54:00) [4]
> или там это предусмотрено? и все перенаправляется?
Всё там предусмотрено...
Anatoly Podgoretsky (2012-03-08 17:20:00) [5]На VirtualStore в C:\Users\user\AppData\Local\VirtualStore\куча подпапок
Таких как Program Files и Windows, то есть защищает не только Program Files
Anatoly Podgoretsky (2012-03-08 17:13:00) [6]
> > пишем файл в program files, а на самом деле он пишется
> в appdata, пишем в %windir% - винда тоже подменяет запрещенный
> для записи каталог на appdaty и т.д.
На VirtualStore в C:\Users\user\AppData\Local\куча подпапок
megavoid (2012-03-08 15:07:00) [7][4] да, система и на чтение тоже подсовывает соответствующий скорректированный путь из appdata, а не откуда там программа хотела бы
[5] такая обломается, каюсь, да [6], program files не подменяется
sniknik (2012-03-08 15:02:00) [8]> Проще всего эту старую программу поместить в "Мои документы".
вообще то это пример а не реальная ситуация...
хотя, реально такое тоже есть, наловчились, ставят в отдельную папку, типа есть "program files", а добавляют "programs" и ставят туда.
очень уж неудобен "правильный" подход, с запретом держать все в одном месте...
не, ну не хотите чтобы программа в свой каталог писала (безопасность и т.д.), ну выделите ей еще стандартно подкаталог "дата" например(пусть даже это будет ссылка на физически другое место, зато очевидная), тут же, и разрешите в него запись... но нафига "размазывать" прогу по всему дисковому пространству? хрен объяснишь же где искать если что...
Германн (2012-03-08 14:22:00) [9]
> megavoid © (08.03.12 11:31) [3]
>
> Да и семёрка тоже старается очень многое "прощать" ради
> обратной совместимости, пишем файл в program files, а на
> самом деле он пишется в appdata
Это как это? program files не подменяется виртуальной папкой. В program files просто запись запрещена.
> sniknik © (08.03.12 12:28) [5]
>
> берем старую программу, ну которая настройки рядим с exe
> держит... что получается?
Проще всего эту старую программу поместить в "Мои документы".
P.S.
Проще совершенно не означает "правильнее".
sniknik (2012-03-08 12:28:00) [10]> ради обратной совместимости,
берем старую программу, ну которая настройки рядим с exe держит... что получается? сохранение настроек - запись? записали в appdata, а чтение? не запись? читается ини который с установкой шел...
или там это предусмотрено? и все перенаправляется?
sniknik (2012-03-08 12:23:00) [11]> пишем файл в program files, а на самом деле он пишется в appdata, пишем в %windir% - винда тоже подменяет запрещенный для записи каталог на appdaty и т.д.
вот это не прощение, это западло... особенно когда проблему решают по телефону, и на "том конце" не то, что про пути, но даже что за такое ось, винда, не в курсе.
честная ошибка, и пусть сама программа решает, гораздо лучше. ИМХО.
megavoid (2012-03-08 11:31:00) [12]Да и семёрка тоже старается очень многое "прощать" ради обратной совместимости, пишем файл в program files, а на самом деле он пишется в appdata, пишем в %windir% - винда тоже подменяет запрещенный для записи каталог на appdaty и т.д.
sniknik (2012-03-08 10:36:00) [13]вообще для полной "совместимости" d7 и висты/..., это не единственное, что нужно сделать. поищи статьи типа "создание приложений для vista в delphi". (и не говори что у тебя проблема в 7ке, а не висте. не только, просто она более требовательна, виста часть "прощает")
sniknik (2012-03-08 10:30:00) [14]если "не совместимо с темой" то значит ты манифест не используешь, в котором как раз указано, одним из, использовать темы.
p.s. наверное "классику" убрали в 7ке. не? (не использую, не могу посмотреть. но гады если так, единственная нормальная тема была)