Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сохранить настройки в файле под Vista ? Как сохранить настройки в файле под Vist 
:(
    Опции темы
Erazer
Дата 8.8.2008, 23:08 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



Если в висте включен UAC, программа даже запущенная под
администраторской учеткой не может сохранить в своем каталоге
конфиг файл,если UAC отключен все пучком, как побороть ? 
PM MAIL   Вверх
CodeMonkey
Дата 9.8.2008, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Не сохранять файлы конфигурации в папке с программой. 
Для данных приложения есть Application Data.

См. также:
Управление учетными записями пользователей Windows Vista: взгляд изнутри (подсказка: если программа запущена из администраторской учётки, это ещё не значит, что она имеет права администратора).
сохранение конфигурации 



--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Akella
Дата 9.8.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Erazer, от блин, та только что обсуждали же  smile 
поищи и почитай про ini Файлы
PM MAIL   Вверх
Erazer
Дата 9.8.2008, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



Цитата(Akella @  9.8.2008,  09:34 Найти цитируемый пост)
ini Файлы 
 с ини файлами у меня порядок, бардак с местом сохранения, при чем в висте,все что касается Vista на этом форуме я перебрал.
Знающие люди подсказали : нужно юзать SHGetSpecialFolderPath с гуидами CSIDL_APPDATA (для конкретного юзера)
и CSIDL_COMMON_APPDATA (общие для всех) , 
Код

function GetUserDirectory(const SubDir: string = ''): string;
var
  List: PItemIDList;
  Path: array[0..MAX_PATH] of Char;
begin
  if IsPortableMode then
  begin
    Result := GetAppDirectory;
    Exit;
  end;
  SHGetSpecialFolderLocation(0, CSIDL_APPDATA, List);
  SHGetPathFromIDList(List, Path);
  Result := String(Path);
  if Result = '' then
    Result := GetAppDirectory
  else
  begin
    Result := Result + '\' + SubDir;
  end;
end;

function GetCommonDirectory(const SubDir: string = ''): string;
var
  List: PItemIDList;
  Path: array[0..MAX_PATH] of Char;
const
  CSIDL_COMMON_APPDATA = $0023;
begin
  if IsPortableMode then
  begin
    Result := GetAppDirectory;
    Exit;
  end;
  SHGetSpecialFolderLocation(0, CSIDL_COMMON_APPDATA, List);
  SHGetPathFromIDList(List, Path);
  Result := String(Path);
  if Result = '' then
    Result := GetAppDirectory
  else
    Result := Result + '\' + SubDir;
end;



PM MAIL   Вверх
Данкинг
Дата 9.8.2008, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



 smile Млин, что же за <цензура> эта "виста". Никогда её не юзал, надеюсь, в ближайшие -цать лет и не придётся. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
CodeMonkey
Дата 9.8.2008, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



offtopic:
Цитата(Данкинг @  9.8.2008,  11:01 Найти цитируемый пост)
 Млин, что же за <цензура> эта "виста".

Мда. Вот так всегда. Хочешь сделать как лучше, а пользователи сами просят как хуже. ROFL smile)))


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Erazer
Дата 9.8.2008, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



Данкинг, хе-хе!!! Не хочешь юзать не юзай, - тебя же никто не заствляет! Я тоже не юзаю, но с 1-го июля официально прекращена продажа XP, и все больше пользователей будет на ней, следовательно юзаю я ее не юзаю, а есть и будет еще больше пользователей работающих на Vista, мне что сказать им идите на.... со своей вистой, я ее пользовать не собираюсь ?  smile  Поэтому ТЕСТИРОВАТЬ, как программа работает на ней приходится, и доводить до ума тоже. Хоть любим МЫ висту хоть нет....

Добавлено через 2 минуты и 38 секунд
тем более что решение описанное выше универсально и каких-то грандиозных пертрубаций кода не требует.
Другое дело где взять красивый прогрессбар, одинаково красиво выглядящий и под хр и под виста как здесь : http://rapidshare.com/files/135895032/vist...essbar.zip.html
PM MAIL   Вверх
Данкинг
Дата 9.8.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Цитата(Erazer @  9.8.2008,  13:42 Найти цитируемый пост)
Поэтому ТЕСТИРОВАТЬ, как программа работает на ней приходится, и доводить до ума тоже. 

Да, вот это грустно... smile Как и то, что софт только под неё будет.

Цитата(Erazer @  9.8.2008,  13:42 Найти цитируемый пост)
тем более что решение описанное выше универсально и каких-то грандиозных пертрубаций кода не требует.

Наверное. Только если, как писал CodeMonkey, админ не имеет админских прав, а в текущем каталоге нельзя сохранить файл конфигурации, то это, конечно, прискорбно. Т.е. усложнение работы не только юзера, но и программиста, ничем не обоснованное.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
CodeMonkey
Дата 9.8.2008, 14:39 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(Данкинг @  9.8.2008,  13:04 Найти цитируемый пост)
ничем не обоснованное

Вот это ни хрена себе заявление! smile)))  "ничем не обоснованное". У меня эта фраза вызвала хохот.

Примечание: нижеследующий текст ни в коем разе не нужно считать персональным наездом на кого-либо, я просто высказываю свои мысли по поводу сложившейся стуации вообще и отношения пользователей к Vista и UAC в частности.

Давайте я вам кое-то расскажу. Причём это взгляд полного ламера по вопросам безопасности, но у этого ламера есть глаза, уши и голова.
Проблема со всеми версиями Windows, кроме Vista, в том, что пользователи в них работают из под административных учётных записей. Что это значит? Во-первых, это означает, что большая часть правил безопасности просто не работает, ибо администраторам разрешено всё. Почему пользователи работают под админами? Потому что они так привыкли. Потому что раньше не было ограничений админ/не админ. Потому что они не в курсе, что можно работать ещё как-то, зачем это нужно и т.п. 
Чем это плохо? Посмотрите, сколько пакости развелось под Windows и как мала их доля в мире всяких Linux. Да, определённо, основной фактор здесь - степень распространения ОС. Но кроме этого, обратите внимание, что всю жизнь мы только и слышим: под учётной записью root работать нельзя! Поэтому чаще всего пользователи работают именно под пользователями, запуская root только в случае крайней необходимости. Видите ли, при таком раскладе плохая бяка, попав на вашу машину мало что может сделать. Ни одну программу не изменишь, в автозапуск себя не добавишь (нет прав!) - остаётся только возможность похрюнячить документы пользователя - и всё. Другие пользователи не задеты, система вообще ничего не заметит.
Более того, на этом дела не заканчиваются. Поскольку в Windows все работают под админами, то программисты пишут программы, которые вообще не работают в Windows по-умолчанию! (имеется ввиду - под пользователем, а не под админом). Обучение, чтоб его. Чтобы писать софт недостаточно прочитать книжку по Delphi и начать экспериментировать. 
Здесь хороша аналогия с ремнями безопасности в автомобиле. Вообще говоря, они не защищают вас от аварии. Точно так же, как и вся эта безопасность вообще (и UAC в частности) бессильны против желания пользователя посмотреть танцующих кроликов (если кто не понял о чём это я - см. PS в конце поста). Но! Если что-то случиться, то как ремни безопасности, так и компьютерная безопасность, защищают вас от последстий. Что-то типа подстелить соломку на случай, если упадёшь. 

Так вот, именно так обстояли дела до Vista: мы имеем одних админов (спрашивается: нафига вообще тогда нужна была вся линейка NT? smile XP в большинстве случаев используется ровно как любая Win9X), кучу софта, который считает, что ему можно всё, и пользователей, которые как всегда хотят, чтобы им сделали хорошо, но не знают как - я уверен, что все в курсе, как пользователи любят покричать о безопасности вообще и за кучу попинать MS за отсутствие таковой (что, мягко говоря, совсем не так).
Итак, дальнейшее направление развития линейки Windows - это перевести всех пользователей с админов на обычные учётки. Но нельзя просто так ввести такое ограничение. Почему? Во-первых, поскольку фактически нет правильно написанных программ, то получится, что под Vista-у не будет софта. Кто будет ставить ОС, если для неё нет программ? Это вопрос совместимости.
С другой стороны, пользователь просто отключит все нововведения в порыве сделать как раньше, как ему привычнее. Замечательно, получим ещё одну ОС, которая используется примерно так же, как когда-то использовалась Win98. Это вопрос удобства.

Здесь на сцену выходит UAC (ну и виртуализация и может ещё кто, про кого я забыл). Что такое UAC? Вопреки распространённому мнению - это не средство свести пользователя с ума постоянными вопросами "а вы точно уверены"? Функция UAC - обеспечить пользователям возможность работать с правами обычного пользователя, не прибегая к административным. Да, говорит Microsoft пользователям, если вы уж так хотите - работайте под администраторами. Но! Административные полномочия вы будете использовать только при установке программ, изменении глобальных настроек и т.п. административных задач. Для рисования, игр, общения, просмотра фильмов, интернета, музыки и т.п. повседневных задач администраторские права вам нафиг не нужны. Фактически, административная учётка в Vista - это две учётные записи (админ + пользователь), объединённые общими настройками. Вы работаете как обычно, как только вам нужно, скажем, установить программу - вы просто отвечаете на диалог об элевации (повышения) прав - и ВСЁ! 
Вот это офигенно удобно! Блин, да в обычных ОС вам нужно было бы выйти и залогиниться заново уже под админом, установить программу, потом вернуться к обычному пользователю (ок, шаг с выходом перед логином - опциональный и не для всех ОС). Насколько удобнее делает UAC это переключение! UAC - это просто средство облегчения вашей жизни. Скажите спасибо, что MS действительно заботится о своих пользователях (эй, если бы это было не так, мы бы не стали покупать Windows) - ведь она могла не тратить силы, думая: блин, как бы поудобнее сделать переход на новую ОС? И ведь могла же она просто тупо заставить вас работать под обычным пользователем. Но не сделала. MS ввела UAC.
Поэтому: никогда, никогда, никогда не выключайте UAC! Этим вы просто возвращаетесь в пещерный век.
Да, со многими программами могут быть проблемы, может часто вылезать диалог UAC и т.п. Но это просто процесс аклиматизации. В дальнейшем эти проблемы сойдут на нет. Microsoft с 95-го года говорит нам, как нужно делать. Но упрямые и безграмотные программисты всё равно делают не так, как надо. 
Посмотрите: возможности более правильного использования компьютера были заложены хрен знает когда с появлением WinNT. И что? Хоть кто-то хоть пальцем для этого пошевелил? Нет, мы лучше знаем как надо, мы будем писать в папку с программой, мы будем искать значения в реестре, мы будем делать как мы хотим, а не как надо. Дай людям в руки возможность - и они обязательно воспользуются ей неправильно. Поэтому, если раньше господствовала идеология: "мы даём программистам в руки самые мощные инструменты (хороший пример про C++, кстати), а они обязаны распоряжать им мудро". Время показало, что это совсем не так. Напротив, ситуация больше похожа на обезьяну с гранатой. Именно поэтому курс меняется на: "если вы не хотите делать как надо - вас заставят это делать". И это правильно.

«Человек вообще слышит и воспринимает только то, что совпадает с его собственными взглядами»
Поэтому, когда в MS долго-долго работают над очередной версией ОС, проверяют разные идеи, отлаживают её, потом выпускают её и говорят: вот, это лучшее, что нам удалось сделать, чтобы всем было хорошо (смотрите, мы улучшили вот это и вот то, согласно вашим пожеланиям), то все немедленно начинают орать: "что это? Мы не хотим этого! Мы вообще первый раз об этом слышим! Мы хотим, чтобы она нам кофе готовила! И голых тёток не забудьте!". Люди просто глухи к словам, зачем это нужно, потому что они не хотят думать
Очень простой приём, чтобы вернуться в реальный мир: представьте себе что было бы, если б ваши желания исполнились бы. Только отвечайте реалистично, а не через розовые очки.

P.S. По поводу того, что вся безопасность мира бессильна против желания пользователя посмотреть танцующих кроликов. Этот вопрос также известен как "проблема танцующих кроликов" smile

Это ситуация, когда пользователь получает письмо со словами: "щёлкни сюда, чтобы посмотреть на танцующих кроликов".

Блин, да конечно же пользователь хочет увидеть танцующих кроликов! Поэтому он щёлкает по ссылке. Не имеет значения, как сильно вы будете убеждать его не делать этого и какие технические препятствия (типа антифирусов, файрволов, настроек безопасности и т.п.) вы поставите на его пути. Он хочет помотреть танцующих кроликов - и он их посмотрит! 

Во-первых, вы можете изолировать пользователей от любого опасного окружения. Вы можете запретить скачивание программ. Вы можете отключить скрипты, вы можете блокировать программы файрволом. Вы можете использовать антивирус. Вы можете заставить пользователя вводить пароли. Вы можете сделать много, много вещей.

Проблема в том, что вы ничего не можете сделать с желанием пользователя увидеть танцующих кроликов. И пользователи приложат все свои усилия, чтобы обойти ваши барьеры и увидеть кроликов!

С чего мы взяли, что пользователь будет так настойчив? Хм, существуют вирусы, которые распространяются в зашифрованном zip файле! Да, это так. Вы должны ввести пароль, чтобы посмотреть содержимое архива и запустить вирус! Пользователь с удовольствием распакует архив, чтобы посмотреть содержимое (и активирует вирус), даже после длительного обучения безопасности.

И всё потому, что люди хотят видеть танцующих кроликов...

Это единственная причина, почему компьютерам нужны анти-вирусы, файрволы, анти-spyware и прочие анти-malware программы. Они формируют последнюю линию обороны против танцующих кроликов.

Пока существуют скрипты и программы будут существовать и вирусы. И будет нужен антивирусный софт.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Erazer
  Дата 9.8.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



Цитата(Данкинг @  9.8.2008,  13:04 Найти цитируемый пост)
Т.е. усложнение работы не только юзера, но и программиста, ничем не обоснованное

ну ты конечно сказанул... если о записи в родной каталог - тк мс давно рекомендует писать в реестр оказывается, если че большое так в application data, а то что тупые программеры и ламеры от программирования типа меня все еще не знают этого и натыкаются на грабли типа UAC, так это их проблемы - читать документацию нуно, и быть в курсе общих правил поведения в ОС (чем и приходится ща заниматься) smile  А нововведения типа UAC обоснованны тоннами вредоносного кода который запускается в не защищенной им ОС, внедряется в чужие процессы и нажимает там кнопки отключая фаерволы, антивирусы.... короч долго можно рассказывать... Учи матчасть в общем и меньше будешь говорить ерунды ;-)

Добавлено через 9 минут и 36 секунд
Цитата(CodeMonkey @  9.8.2008,  14:39 Найти цитируемый пост)
Пока существуют скрипты и программы будут существовать и вирусы. И будет нужен антивирусный софт. 

ну.. с этим можно поспорить... давайте разделять вирусы - код способный к самораспространению (и возможно модификации - читай мутации),  и просто вредоносный софт типа троянов, адваре,спайваре... 
Вирусов - программ способных к саморасползанию под Unix и всеми клонами типа Linux,BSD практически не существует, антивирусы там обычно используются для защиты windows  smile  про адваре и спайваре под Unix вообще ниче не слыхал, сказать не могу... 
PM MAIL   Вверх
CodeMonkey
Дата 9.8.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(Erazer @  9.8.2008,  14:53 Найти цитируемый пост)
а то что тупые программеры и ламеры от программирования типа меня все еще не знают этого и натыкаются на грабли типа UAC, так это их проблемы - читать документацию нуно

Я всё же уточню, что это не только их проблемы. На самом деле, это - гораздо большие проблемы самой Microsoft, чем программистов. Я не буду особо это разжёвывать, просто ткну интересующихся сюда, а также в блог Реймонда Чена, и замечу, что появление виртуализации (и вкладки совместимость программ) - это прямой результат этого процесса. А ключевое слово здесь - совместимость.

Цитата(Erazer @  9.8.2008,  14:53 Найти цитируемый пост)
вредоносного кода который запускается в не защищенной им ОС, внедряется в чужие процессы и нажимает там кнопки отключая фаерволы, антивирусы....

Примечание: для противодействия этому в Vista введено понятие уровней целостности. 

Цитата(Erazer @  9.8.2008,  14:53 Найти цитируемый пост)
ну.. с этим можно поспорить... 

Ой, да будет вам придираться smile Неужели не ясно, что это сказано в широком смысле? Разумеется имелось ввиду не именно вирусы, а (голос становится сухим и официальным) "вредоносное программное обеспечение". Написано же страшно неформально (с целью сделать текст хоть сколько-то занимательным, потому что по моим ссылкам всё равно никто не ходит  smile  ).


Это сообщение отредактировал(а) CodeMonkey - 9.8.2008, 17:54


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Erazer
Дата 9.8.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



Цитата(CodeMonkey @  9.8.2008,  15:35 Найти цитируемый пост)
потому что по моим ссылкам всё равно никто не ходит
 НИКОГДА не стоит разбрасываться словами типа "никто","никогда"...
 smile 

Это сообщение отредактировал(а) Erazer - 9.8.2008, 16:08
PM MAIL   Вверх
Данкинг
Дата 9.8.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Цитата(Erazer @  9.8.2008,  15:53 Найти цитируемый пост)
А нововведения типа UAC обоснованны тоннами вредоносного кода который запускается в не защищенной им ОС, внедряется в чужие процессы и нажимает там кнопки отключая фаерволы, антивирусы.... короч долго можно рассказывать... 

Ага, т.е. обоснованы паранойей. smile В общем, думаю, ОФФ можно завершить.  smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Erazer
Дата 9.8.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 1.6.2008

Репутация: -1
Всего: -1



Цитата(Данкинг @  9.8.2008,  16:47 Найти цитируемый пост)
т.е. обоснованы паранойей
 паранойей для тех кто сидит за корпоративными фаерволами, под ограниченной учеткой и лазит только по разрешенным сайтам  smile  а для свободных домашних серферов, вредоносное ПО на каждом углу внешне даже пристойных сайтов. Я за свои слова отвечаю как говорится smile 

PM MAIL   Вверх
Alexeis
Дата 9.8.2008, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



 Модератор: вопрос оправдано это или нет не по теме. Важно что оно есть и это нужно учитывать. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1919 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.