Windows Server 2008 R2에서 시스템 영역 설정을 변경하려고하는 MFC 응용 프로그램이 있습니다. 오류 코드 1314와 함께 실패하는 SetTimeZoneInformation() API를 사용하고 있습니다. "필요한 권한은 클라이언트가 보유하지 않습니다." 아래의 샘플 코드를 참조하십시오 :Windows Server 2008 R2에서 시스템 영역 설정을 변경할 수 없습니다.
TIME_ZONE_INFORMATION l_TimeZoneInfo;
DWORD l_dwRetVal = 0;
ZeroMemory(&l_TimeZoneInfo, sizeof(TIME_ZONE_INFORMATION));
l_TimeZoneInfo.Bias = -330;
l_TimeZoneInfo.StandardBias = 0;
l_TimeZoneInfo.StandardDate.wDay = 0;
l_TimeZoneInfo.StandardDate.wDayOfWeek = 0;
l_TimeZoneInfo.StandardDate.wHour = 0;
l_TimeZoneInfo.StandardDate.wMilliseconds = 0;
l_TimeZoneInfo.StandardDate.wMinute = 0;
l_TimeZoneInfo.StandardDate.wMonth = 0;
l_TimeZoneInfo.StandardDate.wSecond = 0;
l_TimeZoneInfo.StandardDate.wYear = 0;
CString l_csDaylightName = _T("India Daylight Time");
CString l_csStdName = _T("India Standard Time");
wcscpy(l_TimeZoneInfo.DaylightName,l_csDaylightName.GetBuffer(l_csDaylightName.GetLength()));
wcscpy(l_TimeZoneInfo.StandardName,l_csStdName.GetBuffer(l_csStdName.GetLength()));
::SetLastError(0);
if(0 == ::SetTimeZoneInformation(&l_TimeZoneInfo))
{
l_dwRetVal = ::GetLastError();
CString l_csErr = _T("");
l_csErr.Format(_T("%d"),l_dwRetVal);
}
MFC 응용 프로그램은 비주얼 스튜디오 2008를 사용하여 개발 및 UAC가 "HighestAvailable"로 설정 UAC 실행 수준과의 매니페스트 파일에서 사용할 수있다 UAC 인식, 즉 응용 프로그램입니다되었습니다. 관리자 권한이 있으며 응용 프로그램을 실행할 때 시스템 영역 설정을 변경하지 못합니다. 당신은 필요가 없습니다 미리
감사합니다, 가네
답장을 보내 주셔서 감사합니다. 그게 문제를 해결할 것 같지만, 아직 확인 중입니다. 일단 확인되면 다시 당신에게 돌아올 것입니다. – Ganesh
다시 한 번 감사드립니다. 솔루션이 완벽하게 도움이됩니다. – Ganesh