Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Создание файлов программой


Автор: Riddik 2.8.2011, 19:51
Привет.
Если программа работает не из под админа и ей нужно создать файл на диске, то сможет она это сделать только в ApplicationData, верно? Иначе фейл.

А если требуется создать файл в собственно папке, например, можно как-нибудь это устроить? Если у пользователя нет админских прав и он запустит программу, как разрешить ей создать файл в произвольной папке?




Автор: volatile 3.8.2011, 00:35
Riddik, без админских прав под win7 - никак!
Но в свою папку, она писать сможет. Верней ей будет это казаться.
win7 виртуализирует некоторые пути, и на самом деле она будет писать в другую папку (щаз точно не скажу какую именно).

Это сделано для совместимости со старыми программами, хранящими *.ini файлы в своих папках.
Чтобы они не падали, от введенных в вин7 ограничений.

Короче, если нужно записать _реально_ в свою папку под 7-кой, без прав - дохлый номер. имхо.

Автор: Riddik 3.8.2011, 10:00
А такой вариант пойдёт: инсталляция программы только из под админа, папка, в которую производится инсталляция, наделяем всеми правами доступа, чтобы в неё можно было и писать файлы и т.д.

Тогда если другой пользователь без прав админа запустит это программу, то всё будет хорошо?

Т.е. надо настроить инсталлятор или свой сочинить.

Всё ли верно?

Автор: xvr 3.8.2011, 16:09
Цитата(Riddik @  3.8.2011,  10:00 Найти цитируемый пост)
Тогда если другой пользователь без прав админа запустит это программу, то всё будет хорошо?

Хорошо будет, но писать под себя ей все равно не дадут  smile 

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

Автор: Riddik 3.8.2011, 17:30
xvr, может я не так выразился, но нужно просто узнать, каким образом фирменное ПО умеет апдейтится в свою папку, которая может быть в Program Files,  а текущий юзверь не иметь прав админа.

Как в соседней теме, где вы дали ссылки на Windows Installer.  Буду их курить - ещё раз спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)