2012-06-28 2 views
1

Мне нужна срочная помощь от всех экспертов-программистов ... Я очень благодарен за быструю помощь, поскольку я сильно застрял в своем проекте.Невозможно прочитать файл из другой учетной записи пользователя программным способом (C++) в Windows

Я создал текстовый файл с некоторыми журналами в одной учетной записи пользователя в Windows, используя следующие функции ..

WORD wBOM = 0xFEFF; 

    HANDLE hFile = ::CreateFileW(filePath, GENERIC_WRITE, 0, NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL, NULL); 

      ::WriteFile(hFile, &wBOM, sizeof(WORD), &NumberOfBytesWritten, NULL); 
      ::CloseHandle(hFile); 

Теперь, когда я прочитал этот файл с другой учетной записью пользователя программен ... Я не может открыть файл и прочитать его содержание.

Я использую ниже функция чтения из другой учетной записи пользователя ..

CFile file; 
     CFileException *exp = NULL; 
     if(!file.Open(logAppExecPath,CFile::modeReadWrite | CFile::shareDenyNone,exp)) 
     { 

     if(exp != NULL) 
     { 
      TCHAR ErrorMsg[MAX_PATH]; 
      exp->GetErrorMessage(ErrorMsg,MAX_PATH); 
      AfxMessageBox(L"XML Creation while AppExecLogs : "+ CString(ErrorMsg)); 
      exp->Delete(); 

     } 
     } 

Однако всякий раз, когда я прочитал из того же пользователя счета вышеперечисленные функции работают отлично, и открывает и прочитать файл правильно !!

ОБЩИЕ СЧЕТЫ ПОЛЬЗОВАТЕЛЯ - АДМИНИСТРАТОРНЫЕ СЧЕТА !!

В заключение, записывая файл программно в одну учетную запись пользователя, а чтение из другой учетной записи пользователя дает исключение, что «Файл не существует» .. но факт в том, что файл существует, и я могу открыть этот файл вручную, щелкнув! !!

Пожалуйста, пожалуйста, помогите мне решить эту проблему

Спасибо всем !!

+2

У вас есть права на это? Потому что это звучит так, как будто вы этого не делаете. – RedX

+0

Здравствуйте, @RedX ... Спасибо за ответ ... Infact Я сделал еще один тест, который создал файл в Ограниченной учетной записи, и попытался прочитать его в учетной записи администратора ... но на этот раз он тоже не удался ... Но в Ограниченная учетная запись Я могу открыть файл с помощью CFile() –

+1

И путь к файлу? –

ответ

2

По умолчанию профили пользователя доступны только для этого пользователя. Кроме того, Windows не имеет стандартного способа доступа к профилю другого пользователя.

Ваш лучший вариант - использовать общее/общее местоположение, либо в C:\ProgramData\ (с необходимыми разрешениями), либо в общих папках документов. Где зависит от файла.

Смежные вопросы