当 UAC 打开但没有以管理员身份运行时,如何在 C++ 中创建文件?
我正在尝试在以下路径中创建一个文本文件:Vista 的 UAC 开启时,VC++ 6.0 中的“C:\Programdata\Desktop”。但是,Createfile(...)
由于“权限被拒绝”而失败。
当我使用“以管理员身份运行”运行示例应用程序时,它可以工作。但是我的示例应用程序不应该“以管理员身份运行”。
当 UAC 开启时,是否有任何 API 可以授予上述路径的权限?
示例代码: const nSize = 100; CStdioFile 文件;CFileException obFileExp; CString csFilePath(_T("C:\ProgramData\Desktop\sample.txt"));
if (!file.Open( csFilePath , CFile::modeCreate | CFile::modeWrite ,&obFileExp ) )
{
// opening of file failed
TCHAR szErr[nSize];
obFileExp.GetErrorMessage(szErr,nSize);
AfxMessageBox(szErr);
return ;
}
file.WriteString( "welcome" );
file.Close( );
注意:UAC 应该打开并且 VC++ 6.0 不应该以管理员身份运行