Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2009, 08:31   #1
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию Vista. Права. Создание INI-файлов

Приветствую. Вообщем дело такое. Есть программа, у нее манифест в ресурсах такой:

Код:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    type="win32"
    name="IconDock.exe"
    version="1.0.1.20" 
    processorArchitecture="*"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>
Собственно работаю с TIniFile и при попытке записать строку, к примеру, выдает ошибку (в аттаче)

Что самое странно, это все из-за UAC я считаю, но дело в том, что в Vista Ultimate - работает вроде, а вот в Vista Premium - такая ошибка. в XP - разумеется все ок.

Запрашивать в манифесте права админа - requireAdministrator, как то калично, т.к. система будет каждый раз выводить запрос на разрешения запуска приложения. И в конце концов, есть програ RocketDock - к примеру, у нее манифест подобный моему, и там или все работает (что наверное да) или же в ней игнорируются ошибки записис в ини файл.

какие могут быть предложения ?
Изображения
Тип файла: jpg running error.jpg (15.3 Кб, 97 просмотров)
BOBAH13 вне форума Ответить с цитированием
Старый 24.05.2009, 10:20   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

А может не в манифесте дело ?
Вот эта строчка "C:\Program Files (x86) ..." в сообщении тебя не смущает ? Просто я когда работал из-под Висты и Семерки с системными каталогами там не было никакого (х86)

P.S. Получал пути с сис.папкам вот по этой процедуре :
Код:
function GetSpecialPath(CSIDL: word): string;
var s:  string;
begin
  SetLength(s, MAX_PATH);
  if not SHGetSpecialFolderPath(0, PChar(s), CSIDL, true)
  then s := '';
  result := PChar(s);
end;
Для Program Files аргумент $26
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 24.05.2009 в 10:22.
Kotofff вне форума Ответить с цитированием
Старый 24.05.2009, 10:27   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Именно. Мой инсталлятор (который ставит эту прогу) получает путь через CSIDL_PROGRAM_FILES (тот же $26) и видимо на Vista Premium возращается этот C:\Programs Files (x86)\ . А я же и говорю, что в Vista Ultimate такого у меня тоже нет, и работает на ура. Жаль что не у меня Vista Premium. значит щас узнаю что это за x86

Edit:
Так... вообщем это Vista Premium 64х разрядная, из-за этого мое приложение 32х-разр. ставиться в ...(x86)\...

т.е. это видимо не те грабли, хотя может и из-за разрядности, но это мне кажется чушь

Последний раз редактировалось BOBAH13; 24.05.2009 в 10:40.
BOBAH13 вне форума Ответить с цитированием
Старый 24.05.2009, 10:42   #4
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

А может лучше работать с реестром? Не пробовали? Ошибок быть не должно, а код модифицируется минимально.
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 24.05.2009, 10:43   #5
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от apromix Посмотреть сообщение
А может лучше работать с реестром? Не пробовали? Ошибок быть не должно, а код модифицируется минимально.
У меня программа переносимая по сути. на счет модификации кода, там будет очень много, и сомниваюсь что доступ к реестру, по правам, легче чем к какому-то .ini файлу Сообственно говоря, нужны .ini.
BOBAH13 вне форума Ответить с цитированием
Старый 24.05.2009, 10:51   #6
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

А файл настроек сохраняется в папке екзешника программы, или в системной папке Windows?
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 24.05.2009, 11:04   #7
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от apromix Посмотреть сообщение
А файл настроек сохраняется в папке екзешника программы, или в системной папке Windows?
из текста ошибки, по вашему куда он сохраняется ?

Я понял, что ограничения идут по доступу к реестру и файловой системе, но как тогда другие программы работают, ведь уверен что каждая не запрашивает права админа (requireAdministrator)
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отсутствуют права на открытие файлов Terran Свободное общение 2 04.05.2009 18:45
Вывод некоторых параметров из *.ini (или *.txt) файлов в поля Label grey Помощь студентам 11 14.02.2009 10:58
создание файлов nosuchathing Общие вопросы C/C++ 2 13.01.2009 17:03
Создание и считывание .ini файлов Патрон Общие вопросы Delphi 4 21.04.2008 03:25
Сохранение StringGrid, создание .ini! Nemesisking Общие вопросы Delphi 5 24.09.2007 08:23