【发布时间】:2012-11-10 21:32:21
【问题描述】:
我开发了一个用于 Internet Explorer 的 MFC ActiveX 控件。此控件在硬盘驱动器上创建文件。我已经在 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。为什么程序不为普通用户创建文件?
非常感谢您提供的任何帮助。
【问题讨论】:
标签: c++ windows-7 mfc activex uac