0
我有一個MFC應用程序嘗試更改Windows Server 2008 R2上的系統區域設置。我使用的SetTimeZoneInformation()API失敗,錯誤代碼爲1314.i.e。 「所需的特權不是由客戶持有的。」請參考下面的代碼示例:無法更改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應用程序已經使用Visual Studio 2008開發的,支持UAC即應用程序與設置爲「HighestAvailable」的UAC級別執行其清單文件中啓用UAC。我有管理員權限,當我運行應用程序時,仍然無法更改系統區域設置。
由於事先 Ganesh神
感謝您的回覆。 它似乎會解決問題,但仍然驗證。一旦確認將再次回到你身邊。 – Ganesh 2010-06-11 06:09:07
再次感謝,該解決方案非常有幫助。 – Ganesh 2010-06-17 14:54:05