Запись в папку, где находится исполняемый файл - PullRequest
0 голосов
/ 08 ноября 2011

У меня есть программа и служба Windows, расположенные в одной папке.Они могут быть запущены под разными учетными записями пользователей.Смогут ли они всегда записывать в папку, где находятся их .exe, или это все еще зависит от прав конкретной учетной записи, под которой они работают?Если нет, то какую папку я могу использовать для общего доступа к ним?

Ответы [ 2 ]

3 голосов
/ 08 ноября 2011

Нет. В общем случае исполняемые файлы устанавливаются в \Program Files\ (CSIDL_PROGRAM_FILES). Вам нужен подкаталог для конкретной программы в CSIDL_COMMON_APPDATA. (Создайте этот подкаталог с соответствующими ACL для вашей ситуации).

1 голос
/ 08 ноября 2011

В большинстве случаев (т.е. для большинства видов учетных записей, которые не являются Администраторами) приложение (или служба) не сможет записывать в папку \ Program Files, если она там установлена ​​(как это делается по умолчанию) ,

Для обмена данными между приложениями вы можете использовать папку FOLDERID_ProgramData и получить ее путь, используя SHGetFolderPath .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...