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 を管理者として実行しないでください。