Windows 7: элемент управления MFC ActiveX не создает файлы ни в одной папке

Я разработал элемент управления MFC ActiveX для использования в Internet Explorer. Этот элемент управления создает файлы на жестком диске. Я установил элемент управления в Windows 7 (32-разрядная версия). Если я запускаю IE как администратор, элемент управления создает файлы, как и ожидалось. Но если я запускаю IE как обычный пользователь с включенным UAC, элемент управления не создает никаких файлов.

Ниже приведен код для создания файла:

int WriteDataToFile()
{
CString Data;
int DataLength;
CString FilePath;
std::ofstream File;

// Set Data, DataLength and FilePath

try
{
File.open(FilePath, std::ios::binary | std::ios::out);

if (TRUE == File.fail())
{
return ERROR;
}

File.write((const char *)Data.GetBuffer(), DataLength);

if (TRUE == File.bad())
{
File.close();

return ERROR;
}

File.close();
}
catch (...)
{
return ERROR;
}

return SUCCESS;
}

Функция возвращает SUCCESS если программа запускается от имени администратора или обычного пользователя. Почему программа не создает файлы для обычного пользователя?

Большое спасибо за любую помощь, которую вы можете оказать.

0

Решение

В какую папку ваша программа записала файл? Папки, такие как «Program Files» в системном драйвере, защищены Windows7, не разрешается создавать новые файлы для обычных пользователей.

Возможно, вам следует записать свои файлы в некоторые папки, не защищенные Windows7.

0

Другие решения

Других решений пока нет …