1 / 1 / 0
Регистрация: 19.07.2018
Сообщений: 40
|
|
1 | |
Права доступа к файлам09.12.2018, 14:33. Показов 3000. Ответов 15
Метки нет (Все метки)
Ребята, столкнулся с такой неприятностью под W-7: создал программу, в ней есть модуль, формирующий ini-файл, и прога стартует, начиная с чтения сохраненных настроек.
Все достаточно банально и штатно, как я понимаю. ini-файл находится в программном директории самой проги (на системном диске) - все как обычно... VB.NET, как я понимаю, сами мелко-мягкие создали для написания полноценных программных проектов, однако, как оказалось, как только я запускаю свою прогу самостоятельно (не из среды VB.NET), система отказывает ей в доступе к ini-файлу (ни для записи, ни для чтения!). (( И как же такое побороть в самом проекте (а не сторонними методами)? Ясное дело, если ее запустить с правами админа - все ОК, но это - неприемлемый вариант! Добавлено через 4 минуты sorry, поспешил с созданием темы: уже существует... https://www.cyberforum.ru/post11673560.html
0
|
09.12.2018, 14:33 | |
Ответы с готовыми решениями:
15
Разрешения доступа к файлам и работы программы Права доступа Права доступа к файлам ubuntu Права доступа к папкам и файлам |
1 / 1 / 0
Регистрация: 19.07.2018
Сообщений: 40
|
|
09.12.2018, 16:19 [ТС] | 3 |
ну, я описываю то, что вижу, к сожалению ((
Речь о том, что автоматом не получается (мы же никогда не конфигурируем с точки зрения прав доступа никакие файлы программных пакетов: поставили прогу и пользуемся, а это уже ее дело, создает ли она свои файлы или нет). Вот и возникает вопрос: почему "продукт от Microsoft" (созданный в разработанной ими де среде) не хочет создавать и использовать собственные вспомогательные файлы в своем же собственном программном директории? ========= Я, походу, попробовал воспользоваться советом Yury Komar (из его темы) и подредактировать манифест - с тем же результатом!: программа таки стартует с этим "требованием" (и иконка ее со щитом), но не хочет делать этого тихо!..
0
|
Администратор
|
|
09.12.2018, 16:47 | 4 |
gva62, доступ к файлам контролирует Операционная Система. .NET этим не занимается, а только предоставляет инструменты для работы с файлами которые нужно уметь применять.
Потому что права на каталог не разрешают запись. .NET тут ни при чем. Это потому что необходимые права доступа назначаются во время установки (если есть такая необходимость). Налицо очередное непонимание инструмента. Запуск с правами администратора не может "работать тихо". Это необходимо для безопаности. Если любое приложение сможет молча, без подтверждения пользователя запуститься с правами администратора, то это делает данный механизм полностью бесполезным. Опишите подробнее. Где именно находится приложение и файл который она хочет прочитать/изменить. Покажи код который делает чтение и запись. Покажи исключения которые возникают при чтении и записи.
0
|
1 / 1 / 0
Регистрация: 19.07.2018
Сообщений: 40
|
|
09.12.2018, 19:18 [ТС] | 6 |
Ребята, все предложения по обходу проблемы не решают ее саму (они достаточно прозрачны: раз нет доступа на системном диске - грузись откуда-то еще), но я обсуждаю возможность создания нормального полноценного программного продукта, не нуждающегося в костылях по отношению к операционке, в которой его запускают...
Это как-то странно, вообще-то, что Microsoft вставляет палки в колеса своему же детищу (хотя, от этих красавцев и ни такое можно ожидать!). И если разработчики ОС ничего лучшего не придумали, кроме достающего своей назойливостью только самих пользователей UAC'а, то можно было бы от них же ожидать и средств настройки приложений, лежащих "под рукой" (а не где-то там, на просторах инет'a), в самой среде для создания приложений, разработанной ими же, не так ли?
0
|
09.12.2018, 19:47 | 8 |
gva62, Вам написал OwenGlendower,
Хотите запуск и доступ без помех? Напишите этот код в программе и выполняйте его при первом запуске. либо если вы хотите Напишите для него инсталлятор и деинсталлятор - в которых и будут происходить нужные настройки системы в отношении вашего "нормального" приложения.
0
|
10.12.2018, 07:31 | 10 |
gva62, Если вы не кидаете свою программу непосредственно в корень системного диска либо в системную папку, то никаких проблем с чтением и записью файла не возникает. (Windows 7 x64)
например "C:\1\myprogram.exe" - будет прекрасно работать с файлом находящимся в той же директории "C:\1" Специально для вас проверил. Так что не понятно чего вы хотите? Если конечно не собираетесь писать вируса
0
|
1 / 1 / 0
Регистрация: 19.07.2018
Сообщений: 40
|
|
10.12.2018, 15:05 [ТС] | 12 |
Отвечаю для всех сразу: считаю свои суждения не странными, а вполне логичными:
- на системном диске есть разделы (если из присутствующих в дискуссии кто не знает) под названием "Program Files" и "Program Files (x86)" - и как раз именно потому, что я не пишу никаких вирусов, совершенно естественно разместить новую прогу (пусть и написанную на VB.NET) именно туда, где ей и место... (а не бегать, как бедному родственнику, по ресурсам РС в поисках "подходящего местечка" для "недо-программы")! Более тут пояснять нечего: все разделились на тех, кто считает, что "мелкомягкие никому ничем не обязаны" и на тех, что совсем даже наоборот (я отношусь к последним, однако, это - уже оффтоп, как я понимаю, и потому прения об этом считаю неуместными...)
0
|
Модератор
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
|
|
10.12.2018, 15:10 | 13 |
gva62, как я вам уже говорил - единственный путь - это понижать уровень UAC в самой системе или как выше посоветовали
выдать соответствующие NTFS права на файл конфигурации.
1
|
Администратор
|
|
10.12.2018, 15:20 | 14 |
Сообщение было отмечено gva62 как решение
Решение
Так точно делать не стоит. Это решение локальных проблем глобальными средствами которое понижает безопасность системы.
Добавлено через 5 минут gva62, никто и не называл ваши рассуждения нелогичными. Они просто неверные. Потому что любая программа работает под управлением ОС и вынуждена следовать её правилам. Таким правилом в данном случае является запрет записи в папку Program Files без elevated прав. Размещать программу в папке Program Files это разумеется нормальное решение. А вот изменяемые файлы лучше размещать в профиле пользователя. Это такое же стандартное решение как и размещение программы в Program Files.
3
|
10.12.2018, 15:39 | 15 |
gva62, Вместо того чтобы возмущаться вы бы хоть постарались понять то что вам пишут.
Вас не смущает что программу в этот раздел помещает установщик программы? А написать в программе то, что совершенно естественно - религия не позволяет? Вам написали все варианты возможных действий: 1. 2. 3. Выбирайте любое. Других вариантов НЕТ! Если вы обратите внимание, на уже установленные у вас программы то вы может быть в конце концов поймете, что любая программа делает что то из перечисленного. ЯП пишите - хоть в VS хоть в блокноте сразу HEX набирайте, РАЗНИЦЫ НЕТ! - РЕЗУЛЬТАТ ТАКОЙ-ЖЕ БУДЕТ! Либо программа регистрируется в реестре и имеет права администратора на свой каталог, либо (как стоит отметить поступает большинство игр) - создавать,хранить и изменять файлы в папке "C:\Users\Имя пользователя\Documents". Не бывает больше никак, поймите это в конце концов пожалуйста
2
|
1 / 1 / 0
Регистрация: 19.07.2018
Сообщений: 40
|
|
11.12.2018, 13:16 [ТС] | 16 |
Благодарю всех за конструктивную беседу! ))
Пожалуй все Вы по-своему правы: политика OS изменилась => мы вынуждены следовать новым Правилам (и подстраиваться под новые же условия), согласен...
0
|
11.12.2018, 13:16 | |
11.12.2018, 13:16 | |
Помогаю со студенческими работами здесь
16
Не работают права доступа к файлам в Linux Права доступа. Не могу получить доступ к файлам/папкам Как настроить разные права доступа пользователей к файлам и папкам? Написать программу, которая получает со стандартного потока ввода права доступа к файлам каталога Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |