У меня есть полные права администратора на моем компьютере с Windows 7, но когда я запускаю свое приложение, которое создает файл на диске c: \, я получаю код ошибки 5 (доступ запрещен).Я знаю, что Windows 7 не позволяет создавать файлы в защищенных областях, таких как диск c и программные файлы, а проводник файлов вызывает окно «Административное сообщение», если я копирую туда файл откуда-то еще, после чего это позволяет, но может ли мое приложение получить уровень записиaccess?
В моем приложении пользователь может выбрать папку, в которой он хочет создать файл, поэтому, если он выберет диск c: \, он / она, очевидно, получит эту ошибку, что нежелательно.
void CTestDlg::OnBnClickedButtonCreate()
{
CFile f;
CFileException e;
TCHAR* pszFileName = _T("c:\\test.txt"); // here i am hard coding path for simplicity.
if(!f.Open(pszFileName, CFile::modeCreate | CFile::modeWrite, &e))
{
TRACE(_T("File could not be opened %d\n"), e.m_cause);
}
}
Насколько я исследовал, кажется, что я не могу обойти диалог UAC, что нормально, но мое приложение даже не представляет его (что также понятно), но каковы мои варианты?
Я вижу, что мой единственный вариант - обнаружить это в моем собственном приложении, если это ОС Windows 7, и затем проверить путь к файлу перед созданием файла и представить более удобное для пользователя сообщение. Windows 7 не любит, когда вы создаетефайл в этой папке, выберите другую папку или вернитесь к xp '.Эта схема способ пойти на Windows 7?Есть ли другой способ?