Конференция "WinAPI" » Права админа для записи в файл (настройки) [D7]
 
  • sniknik © (09.01.13 13:26) [0]
    Есть идеи как сделать? Пока у меня только одна, запустить себя же "RunAs" (с запросом логина/пароля как полагается) и передать туда данные на запись...
    Только проблема (сложность) будет с взаимодействием, обработкой возможных ошибок (передачей обратно).

    А было бы неплохо, если бы была просто функция/поток/...(что то внутри самой программы)... которую можно было выполнить от имени админа с системным (это важно) запросом логина/пароля как при "RunAs".
    ???

    p.s. Вот все "уходят" от ini-ников в каталоге программы, а у меня(???) не получается. Вариант с хранением в AppData есть... не пользуются, не удобно т.что не предлагать :). (согласен кстати, не удобно, прогу можно просто переписать без установки, а вот чтобы настроить, поддержке часть приходится объяснять как от админа выполнять. лишние звонки только)
  • sniknik © (09.01.13 13:29) [1]
    Во блин, куда попал, а писал вроде в основную... перенесите плиз (у меня админки с работы нет).
  • Rouse_ © (09.01.13 13:56) [2]
    Временное повышение прав как-то через комсервак делают, который крутится в отдельной нити. Т.е. само приложение не перезапускается. Но если честно читал только про описание данного метода, сам не реализовывал.
  • brother © (09.01.13 14:05) [3]
    > через комсервак делают, который крутится в отдельной нити

    вопрос, а права то полностью всему процессу повышают или только для нити? впрочем, то-то заумно все это...
  • sniknik © (09.01.13 14:21) [4]
    > впрочем, то-то заумно все это...
    Вот этого как раз хотелось бы избежать. Похоже вариант с "самозапуском" (ну предупредить сначала, типа "для сохранения настроек требуются админские права перезапустить?") самый простой. Главное в поддержку обращения убрать (доки же не читают, сразу звонят, а эта ситуация одной из первых в "быстром старте" описана).
  • sniknik © (09.01.13 14:24) [5]
    > передать туда данные на запись...
    Просто расставить уже настроенные параметры по ним в ней, и с обработкой ошибок уже пусть новая копия разбирается...
  • Rouse_ © (09.01.13 14:38) [6]

    > brother ©   (09.01.13 14:05) [3]
    > > через комсервак делают, который крутится в отдельной нити
    >
    > вопрос, а права то полностью всему процессу повышают или
    > только для нити?

    для нити, полностью без рестарта (AFAIK) нельзя.
  • brother © (09.01.13 15:04) [7]
    Тогда, нужны ли эти танцы с бубном?
  • Игорь Шевченко © (09.01.13 16:19) [8]

    > Вот все "уходят" от ini-ников в каталоге программы, а у
    > меня(???) не получается. Вариант с хранением в AppData есть.
    > .. не пользуются, не удобно т.что не предлагать :). (согласен
    > кстати, не удобно, прогу можно просто переписать без установки,
    >  а вот чтобы настроить, поддержке часть приходится объяснять
    > как от админа выполнять. лишние звонки только


    Для внесения изменений в iniшник нужны права администратора ?
    А зачем ?
    И зачем ради этого городить зоопарк с повышением прав ?
  • sniknik © (09.01.13 16:48) [9]
    > А зачем ?
    На семерке ставят в "программ файлес" выбирая опцию в сетапе "все одной директории" (ну смысл такой, а вообще там не один параметр).
    Ну вот, в XP все нормально, а семерка "защищается" :).

    > И зачем ради этого городить зоопарк с повышением прав ?
    Как раз не хочу, хочу что то "от системы" чтобы она делала, а не я. RunAs подходит, но тут обязателен рестарт... что не особо хорошо (скрытых запусков тоже не хочется).

    Вообще цель не в "нагородить", а чтобы звонков от разных "админов" с "мне программа говорит, что у меня прав на запись нет, и что делать?" было поменьше.
  • Игорь Шевченко © (09.01.13 17:41) [10]

    > Как раз не хочу, хочу что то "от системы" чтобы она делала,
    >  а не я


    1. ставить не в program files
    2. разрешить запись в указанный каталог
    3. ????
    4. PROFIT
  • sniknik © (09.01.13 18:04) [11]
    1. Как контролировать пользователей программы?
    2. Кто будет учить "админить"?
    3. ????
    4. PROFIT это только у вас в идеальном мире, на грешной земле все немного иначе.
  • брат Птибурдукова (09.01.13 18:20) [12]

    > с запросом логина/пароля как полагается
    А это ещё зачем? Я бы вот такими о_О глазами смотрел на софтину, которая предлагает мне пароль системный ввести.


    >  RunAs подходит, но тут обязателен рестарт
    Мне нравится, как фар себя ведёт: если надо сделать что-то, требующее повышения, то появляется окошко, запрашивающее повышение, запускается дочерний процесс, при последующих действиях, требующих повышения, используется уже запущенный дочерний процесс.

    ЗЫ. А софтина 64-битная что ли? Если нет, то почему виртуализация ФС не работает?
  • brother © (09.01.13 18:32) [13]
    > если надо сделать что-то, требующее повышения, то появляется
    > окошко, запрашивающее повышение,

    far 1.75 (x64) подобного не наблюдал(
  • брат Птибурдукова (09.01.13 18:36) [14]
    Некрофилы в треде! Описанное поведение наблюдалось в фаре 3.
  • brother © (09.01.13 18:39) [15]
    да как-то вот так получилось)
  • Игорь Шевченко © (09.01.13 18:50) [16]
    sniknik ©   (09.01.13 18:04) [11]

    Я все-таки не понимаю. Хранить в AppData неудобно, хранить в Program Files удобно, но туда писать нельзя, etc

    Похоже, ты сам себе создаешь трудности и мужественно пытаешься их преодолеть. Удачи, конечно :)
  • sniknik © (09.01.13 19:36) [17]
    > если надо сделать что-то, требующее повышения, то появляется окошко, запрашивающее повышение, запускается дочерний процесс, при последующих действиях, требующих повышения, используется уже запущенный дочерний процесс.
    Ну, я примерно так и сделал уже, проверяю запись, если нет то окошко с предложением старта от админа... дальше не "по классике", родитель закрывается, но в общем похоже.

    > ЗЫ. А софтина 64-битная что ли? Если нет, то почему виртуализация ФС не работает?
    Нет 32-битная. Почему не знаю, т.к. сталкиваюсь только с результатом (звонки), а не с собственно настройкой/установкой.
    Вполне может быть, что ставят и не в "программ файлес", а в директорию по умолчанию, просто под админом, а настраивают/работают после под юзером (работать правильно, а вот для настроек зависит от прав юзера).

    > Я все-таки не понимаю.
    Не привязывайся к конкретным директориям, и все встанет на свои места. Удобно это когда все в куче, данные, логи, настройки, программы, библиотеки, ets. ну, разделенное логически внутри.
    Ставят по крайней мере так (и сам так делаю), хотя возможны варианты.

    > Похоже, ты сам себе создаешь трудности и мужественно пытаешься их преодолеть. Удачи, конечно :)
    По моему, это ты меня пытаешься убедить что у меня трудности. Удачи, конечно :)
  • Inovet © (09.01.13 20:03) [18]
    > [13] brother ©   (09.01.13 18:32)
    > far 1.75 (x64)

    Эта версия оставлена для Win9x, а её х64 версия не знаю для кого. FAR 2 давно уже надо пользовать, скоро 3 будет.
  • брат Птибурдукова (09.01.13 23:45) [19]

    > скоро 3 будет.
    Да вообще-то уже месяца три тройка в статусе stable, а так альфами чуть не год уже дома пользуюсь (на работе двойка х86, ввиду необходимости использования специфичного плагина).


    > sniknik ©   (09.01.13 19:36) [17]
    Вот тут глянь http://filezilla.ru/documentation/FZ_UAC . Не особо по теме, но даёт представление, куда копать.

    Вообще недавно столкнулись с подобной (или противоположной) байдой: внезапно выяснилось, что 64-битная версия приложения не может писать лог (рядом с собой). Аксес, мол, денайд. Все в шоке, как же так, 32-битная пишет и не жалуется, а 64-битной вдруг прав мало. Хорошо, что я оказался рядом и растолковал, что то, что 32-битная приложилка успешно пишет лог — это костыль, придуманный умным микрософтом для таких горе-программ и что запись в c:\progra~2\soft\log реально идёт в c:\users\...\VirtualStore\...\soft\log. Ну переделали за полчаса, чтоб лог хранился в аппдате, все довольны остались.
 
Конференция "WinAPI" » Права админа для записи в файл (настройки) [D7]
Есть новые Нет новых   [134430   +2][b:0][p:0.001]