<%@ Language=VBScript %> <% Option Explicit %> <% '================================================== ' Microsoft Server Appliance ' ' Sets server appliance date and time ' ' Copyright (c) Microsoft Corporation. All rights reserved. '================================================== %> <% '------------------------------------------------------------------------- ' Global Variables '------------------------------------------------------------------------- Dim page Dim SOURCE_FILE Const ENABLE_TRACING = FALSE SOURCE_FILE = SA_GetScriptFileName() '------------------------------------------------------------------------- ' Global Form Variables '------------------------------------------------------------------------- ' Form values Dim g_sDateID Dim g_sTimeID Dim g_sDay Dim g_sMonth Dim g_sYear Dim g_sHour Dim g_sMinute Dim g_sSecond Dim g_sTimeZone Dim g_sEnableDaylight Dim g_sWasChanged Dim mstrCHelperPROGID Dim mstrTimeFormat Dim mstrTimeFormatPathName Dim mstrTimeFormatValue '====================================================== ' Entry point '====================================================== ' ' Create a Property Page Call SA_CreatePage( L_TASKTITLE_TEXT, "images/datetime_icon.GIF", PT_PROPERTY, page ) ' ' Serve the page Call SA_ShowPage( page ) '====================================================== ' Web Framework Event Handlers '====================================================== '--------------------------------------------------------------------- ' Function: OnInitPage ' ' Synopsis: Called to signal first time processing for this page. Use this method ' to do first time initialization tasks. ' ' Returns: TRUE to indicate initialization was successful. FALSE to indicate ' errors. Returning FALSE will cause the page to be abandoned. ' '--------------------------------------------------------------------- Public Function OnInitPage(ByRef PageIn, ByRef EventArg) If ( ENABLE_TRACING ) Then Call SA_TraceOut(SOURCE_FILE, "OnInitPage") End If Call GetAutoAdjustInfo() g_sTimeZone = GetTimeZone() g_sDateID = FormatDateTime(date, vbShortDate) g_sTimeID = FormatDateTime(time, vbLongTime) OnInitPage = TRUE End Function '--------------------------------------------------------------------- ' Function: OnServePropertyPage ' ' Synopsis: Called when the page needs to be served. Use this method to ' serve content. ' ' Returns: TRUE to indicate not problems occured. FALSE to indicate errors. ' Returning FALSE will cause the page to be abandoned. ' '--------------------------------------------------------------------- Public Function OnServePropertyPage(ByRef PageIn, ByRef EventArg) OnServePropertyPage = TRUE If ( ENABLE_TRACING ) Then Call SA_TraceOut(SOURCE_FILE, "OnServePropertyPage") End If ServePage End Function '---------------------------------------------------------------------------- ' ' Function : ServePage ' ' Synopsis : serve the property page ' ' Arguments: None ' ' Returns : None ' '---------------------------------------------------------------------------- Sub ServePage Dim sTempTimeZone Dim sEnableDaylightAttr If ( g_sEnableDaylight = "Y" ) Then sEnableDaylightAttr = "" Else sEnableDaylightAttr = " DISABLED " End If %>
<%=L_DATE%>

<%=L_TIME%>

<%=L_TIMEZONE%>

<% RenderTimezoneList %>
 
class=FormField name='EnableDaylightCheck' id='EnableDaylightCheck' onclick='StopRefresh()'> <%=L_AUTOMATICALLY_TEXT%>

<%=L_NOTE_LEFT_TEXT%>
<%=L_NOTE_DESCRIPTION_TEXT%>

<% End Sub '--------------------------------------------------------------------- ' Function: OnPostBackPage ' ' Synopsis: Called to signal that the page has been posted-back. A post-back ' occurs in tabbed property pages and wizards as the user navigates ' through pages. It is differentiated from a Submit or Close operation ' in that the user is still working with the page. ' ' The PostBack event should be used to save the state of page. ' ' Returns: TRUE to indicate initialization was successful. FALSE to indicate ' errors. Returning FALSE will cause the page to be abandoned. ' '--------------------------------------------------------------------- Public Function OnPostBackPage(ByRef PageIn, ByRef EventArg) OnPostBackPage = TRUE If ( ENABLE_TRACING ) Then Call SA_TraceOut(SOURCE_FILE, "OnPostBackPage") End If g_sDateID = Request.Form("DateID") g_sTimeID = Request.Form("TimeID") g_sTimeZone = Request.Form("StandardName") g_sEnableDaylight = Request.Form("EnableDaylight") g_sWasChanged = Request.Form("WasChanged") If ("Y" <> g_sWasChanged) Then g_sTimeZone = GetTimeZone() g_sDateID = FormatDateTime(date, vbShortDate) g_sTimeID = FormatDateTime(time, vbLongTime) Call GetAutoAdjustInfo() End If End Function '--------------------------------------------------------------------- ' Function: OnSubmitPage ' ' Synopsis: Called when the page has been submitted for processing. Use ' this method to process the submit request. ' ' Returns: TRUE if the submit was successful, FALSE to indicate error(s). ' Returning FALSE will cause the page to be served again using ' a call to OnServePropertyPage. ' '--------------------------------------------------------------------- Public Function OnSubmitPage(ByRef PageIn, ByRef EventArg) Const CONST_SETSYSTIMEPRIVILEGE = "SeSystemTimePrivilege" on error resume next Err.Clear Dim objSAHelper Dim bModifiedPrivilege bModifiedPrivilege = FALSE 'Create SAHelper object Set objSAHelper = Server.CreateObject("ServerAppliance.SAHelper") if err.number <> 0 Then SA_TraceOut "Create object failed for SAHelper object", err.description else 'enable set system time privilege bModifiedPrivilege = objSAHelper.SAModifyUserPrivilege(CONST_SETSYSTIMEPRIVILEGE, TRUE) if err.number <> 0 Then SA_TraceOut "Enable privilege failed", err.description exit function end if end if If ( ENABLE_TRACING ) Then Call SA_TraceOut(SOURCE_FILE, "OnSubmitPage") End If OnSubmitPage = SetServerDate if ( bModifiedPrivilege ) then 'revert back to disabled state bModifiedPrivilege = objSAHelper.SAModifyUserPrivilege(CONST_SETSYSTIMEPRIVILEGE, FALSE) if err.number <> 0 Then SA_TraceOut "Disable privilege failed", err.description exit function end if end if set objSAHelper = Nothing End Function '--------------------------------------------------------------------- ' Function: OnClosePage ' ' Synopsis: Called when the page is about to be closed. Use this method ' to perform clean-up processing. ' ' Returns: TRUE to allow close, FALSE to prevent close. Returning FALSE ' will result in a call to OnServePropertyPage. ' '--------------------------------------------------------------------- Public Function OnClosePage(ByRef PageIn, ByRef EventArg) OnClosePage = TRUE If ( ENABLE_TRACING ) Then Call SA_TraceOut(SOURCE_FILE, "OnClosePage") End If End Function '---------------------------------------------------------------------------- ' ' Function : SetServerDate ' ' Synopsis : function to set server date and time ' ' Arguments: None ' ' Returns : None ' '---------------------------------------------------------------------------- Function SetServerDate() Dim sErrorMessage SetServerDate = False If IsDate(g_sDateID) Then g_sDay = CStr(Day(g_sDateID)) g_sMonth = CStr(Month(g_sDateID)) g_sYear = CStr(Year(g_sDateID)) If ( ENABLE_TRACING ) Then Call SA_TraceOut(SOURCE_FILE, "SetServerDate Date (D/M/Y):"+g_sDay+"/"+g_sMonth+"/"+g_sYear) End If If (1991 > Year(g_sDateID)) Or (2037 < Year(g_sDateID)) Then Call SA_TraceOut(SOURCE_FILE, "SetServerDate Date not valid:"+g_sDateID+" year:"+CStr(Year(g_sDateID))) sErrorMessage = GetLocString("datetimemsg.dll","&H400100B3", Array(g_sDay, MonthName(g_sMonth), g_sYear)) Call SetErrMsg(sErrorMessage) SetServerDate = False exit function End If Else SetErrMsg L_INVALIDDATE_ERRORMESSAGE SetServerDate = False exit function End If If IsDate(g_sTimeID) Then g_sHour = CStr(Hour(g_sTimeID)) g_sMinute = CStr(Minute(g_sTimeID)) g_sSecond = CStr(Second(g_sTimeID)) If ( ENABLE_TRACING ) Then Call SA_TraceOut(SOURCE_FILE, "SetServerDate Time:"+g_sHour+"/"+g_sMinute+"/"+g_sSecond) End If Else SetErrMsg L_INVALIDTIME_ERRORMESSAGE SetServerDate = False exit function End If If SetTimeZone = True Then If SetDateTime = True Then SetServerDate = True End If End If End Function '---------------------------------------------------------------------------- ' ' Function : GetTimeZone ' ' Synopsis : gets the Time Zone ' ' Arguments: None ' ' Returns : None ' '---------------------------------------------------------------------------- Function GetTimeZone() on error resume next Err.Clear Dim Locator Dim Service Dim TimeZone Dim Entries Dim entry Dim StandardName Set Service = GetWMIConnection("") Set TimeZone = Service.Get("Win32_TimeZone") Set Entries = TimeZone.Instances_ If Err.number<>0 then SetErrMsg L_FAILEDTOGETWMICONNECTION_ERRORMESSAGE GetTimeZone="" Exit Function End if For each entry in Entries StandardName = entry.StandardName 'There should be only one entry Next GetTimeZone = StandardName Set Service = nothing Set TimeZone = nothing End Function '---------------------------------------------------------------------------- ' ' Function : SetTimeZone ' ' Synopsis : sets the Time Zone ' ' Arguments: None ' ' Returns : None ' '---------------------------------------------------------------------------- Function SetTimeZone on error resume next Err.Clear Dim objTCtx Dim Error Error = ExecuteTask("SetTimeZone", objTCtx) if Error <> 0 then SetErrMsg L_INVALIDTIMEZONE_ERRORMESSAGE SetTimeZone = False Else SetTimeZone = True End if set objTCtx = Nothing End Function '---------------------------------------------------------------------------- ' ' Function : SetDateTime ' ' Synopsis : sets the date and time on the server ' ' Arguments: None ' ' Returns : None ' '---------------------------------------------------------------------------- Function SetDateTime on error resume next Err.Clear Dim objTCtx Dim Error 'We are calculating values on the server, so we need to put them into 'the TaskContext object Set objTCtx = CreateObject("Taskctx.TaskContext") If Err.Number <> 0 Then SetErrMsg L_TASKCTX_OBJECT_CREATION_FAIL_ERRORMESSAGE SetDateTime = False Exit Function End If objTCtx.SetParameter "Day", g_sDay objTCtx.SetParameter "Month", g_sMonth objTCtx.SetParameter "Year", g_sYear objTCtx.SetParameter "Hour", g_sHour objTCtx.SetParameter "Minute", g_sMinute objTCtx.SetParameter "Second", g_sSecond Error = ExecuteTask("SetDateTime", objTCtx) if Error <> 0 then SetErrMsg L_INVALIDDATETIME_ERRORMESSAGE SetDateTime = False End if Err.Clear set objTCtx = Nothing SetDateTime = True End Function '---------------------------------------------------------------------------- ' ' Function : GetAutoAdjustInfo() ' ' Synopsis : function to Get Auto Adjust of Daylight time set up ' ' Arguments: None ' ' Returns : None ' '---------------------------------------------------------------------------- Function GetAutoAdjustInfo() on error resume next Err.Clear Dim Providers Dim Provider Set Providers = GetObject("winmgmts:" & SA_GetWMIConnectionAttributes() & "!root/cimv2").InstancesOf ("ProviderDateTimeAdjust") If Err.number<>0 then SetErrMsg L_FAILEDTOGETWMICONNECTION_ERRORMESSAGE GetAutoAdjustInfo=False Exit Function End if g_sEnableDaylight = "Y" For each Provider in Providers ' Must be only one If IsEmpty(Provider.DisableAutoDaylightTimeSet) Or Provider.DisableAutoDaylightTimeSet <> 1 Then g_sEnableDaylight = "Y" Else g_sEnableDaylight = "N" End If next Set Providers = nothing End Function '---------------------------------------------------------------------------- ' ' Function : RenderTimezoneList() ' ' Synopsis : function render the timezone list ' ' Arguments: None ' ' Returns : None ' '---------------------------------------------------------------------------- Function RenderTimezoneList() on error resume next Err.Clear const CONST_LIST_SIZE = 74 Dim objRegService Dim i, j Dim arrTimezone (74, 2) set objRegService = RegConnection() 'VBScript arrays are zero-based, to make the it's compatible with L_TIMEZONES_TEXT 'we start it from 1 to 74, arrTimezone(0, i) is ignored ' 'Init the timezone array ' 'Set the option text for i = 1 to CONST_LIST_SIZE arrTimezone(i, 2) = L_TIMEZONES_TEXT(i) Next 'Set the option Ids, which are used by the test team arrTimezone(1, 0) = "PareID_Enewetak" arrTimezone(2, 0) = "PareID_MidwayIland" arrTimezone(3, 0) = "PareID_Hawaii" arrTimezone(4, 0) = "PareID_Alaska" arrTimezone(5, 0) = "PareID_Pacific" arrTimezone(6, 0) = "PareID_Arizona" arrTimezone(7, 0) = "PareID_Mountain" arrTimezone(8, 0) = "PareID_America" arrTimezone(9, 0) = "PareID_CentralUS" arrTimezone(10, 0) = "PareID_Mexico" arrTimezone(11, 0) = "PareID_Saskatchewan" arrTimezone(12, 0) = "PareID_Bogota" arrTimezone(13, 0) = "PareID_EasternUS" arrTimezone(14, 0) = "PareID_Indiana" arrTimezone(15, 0) = "PareID_Atlantic" arrTimezone(16, 0) = "PareID_Caracas" arrTimezone(17, 0) = "PareID_PacificStandard" arrTimezone(18, 0) = "PareID_Newfoundland" arrTimezone(19, 0) = "PareID_Brasilia" arrTimezone(20, 0) = "PareID_BuenosAires" arrTimezone(21, 0) = "PareID_Greenland" arrTimezone(22, 0) = "PareID_MidAtlantic" arrTimezone(23, 0) = "PareID_Azores" arrTimezone(24, 0) = "PareID_Cape" arrTimezone(25, 0) = "PareID_Casablanca" arrTimezone(26, 0) = "PareID_Greenwich" arrTimezone(27, 0) = "PareID_Amsterdam" arrTimezone(28, 0) = "PareID_Belgrade" arrTimezone(29, 0) = "PareID_Brussels" arrTimezone(30, 0) = "PareID_Sarajevo" arrTimezone(31, 0) = "PareID_CenAfrica" arrTimezone(32, 0) = "PareID_Athens" arrTimezone(33, 0) = "PareID_Bucharest" arrTimezone(34, 0) = "PareID_Cairo" arrTimezone(35, 0) = "PareID_Harare" arrTimezone(36, 0) = "PareID_Helsinki" arrTimezone(37, 0) = "PareID_Israel" arrTimezone(38, 0) = "PareID_Baghdad" arrTimezone(39, 0) = "PareID_Kuwait" arrTimezone(40, 0) = "PareID_Moscow" arrTimezone(41, 0) = "PareID_Nairobi" arrTimezone(42, 0) = "PareID_Tehran" arrTimezone(43, 0) = "PareID_AbuDhabi" arrTimezone(44, 0) = "PareID_Baku" arrTimezone(45, 0) = "PareID_Kabul" arrTimezone(46, 0) = "PareID_Ekaterinburg" arrTimezone(47, 0) = "PareID_Islamabad" arrTimezone(48, 0) = "PareID_Bombay" arrTimezone(49, 0) = "PareID_Nepal" arrTimezone(50, 0) = "PareID_Novosibirsk" arrTimezone(51, 0) = "PareID_Almaty" arrTimezone(52, 0) = "PareID_Colombo" arrTimezone(53, 0) = "PareID_Myanmar" arrTimezone(54, 0) = "PareID_Bangkok" arrTimezone(55, 0) = "PareID_Krasnoyarsk" arrTimezone(56, 0) = "PareID_Beijing" arrTimezone(57, 0) = "PareID_Irkutsk" arrTimezone(58, 0) = "PareID_Singapore" arrTimezone(59, 0) = "PareID_Perth" arrTimezone(60, 0) = "PareID_Taipei" arrTimezone(61, 0) = "PareID_Osaka" arrTimezone(62, 0) = "PareID_Seoul" arrTimezone(63, 0) = "PareID_Yakutsk" arrTimezone(64, 0) = "PareID_Adelaide" arrTimezone(65, 0) = "PareID_Darwin" arrTimezone(66, 0) = "PareID_Brisbane" arrTimezone(67, 0) = "PareID_Canberra" arrTimezone(68, 0) = "PareID_Guam" arrTimezone(69, 0) = "PareID_Hobart" arrTimezone(70, 0) = "PareID_Vladivostok" arrTimezone(71, 0) = "PareID_Magadan" arrTimezone(72, 0) = "PareID_Auckland" arrTimezone(73, 0) = "PareID_Fiji" arrTimezone(74, 0) = "PareID_Nuku" 'Set the Option values based on the registry value arrTimezone(1, 1) = GetTimezoneValueFromRegistry(objRegService, "Dateline Standard Time") & "#0" arrTimezone(2, 1) = GetTimezoneValueFromRegistry(objRegService, "Samoa Standard Time") & "#0" arrTimezone(3, 1) = GetTimezoneValueFromRegistry(objRegService, "Hawaiian Standard Time") & "#0" arrTimezone(4, 1) = GetTimezoneValueFromRegistry(objRegService, "Alaskan Standard Time") & "#1" arrTimezone(5, 1) = GetTimezoneValueFromRegistry(objRegService, "Pacific Standard Time") & "#1" arrTimezone(6, 1) = GetTimezoneValueFromRegistry(objRegService, "US Mountain Standard Time") & "#0" arrTimezone(7, 1) = GetTimezoneValueFromRegistry(objRegService, "Mountain Standard Time") & "#1" arrTimezone(8, 1) = GetTimezoneValueFromRegistry(objRegService, "Central America Standard Time") & "#0" arrTimezone(9, 1) = GetTimezoneValueFromRegistry(objRegService, "Central Standard Time") & "#1" arrTimezone(10, 1) = GetTimezoneValueFromRegistry(objRegService, "Mexico Standard Time") & "#1" arrTimezone(11, 1) = GetTimezoneValueFromRegistry(objRegService, "Canada Central Standard Time") & "#0" arrTimezone(12, 1) = GetTimezoneValueFromRegistry(objRegService, "SA Pacific Standard Time") & "#0" arrTimezone(13, 1) = GetTimezoneValueFromRegistry(objRegService, "Eastern Standard Time") & "#1" arrTimezone(14, 1) = GetTimezoneValueFromRegistry(objRegService, "US Eastern Standard Time") & "#0" arrTimezone(15, 1) = GetTimezoneValueFromRegistry(objRegService, "Atlantic Standard Time") & "#1" arrTimezone(16, 1) = GetTimezoneValueFromRegistry(objRegService, "SA Western Standard Time") & "#0" arrTimezone(17, 1) = GetTimezoneValueFromRegistry(objRegService, "Pacific SA Standard Time") & "#1" arrTimezone(18, 1) = GetTimezoneValueFromRegistry(objRegService, "Newfoundland Standard Time") & "#1" arrTimezone(19, 1) = GetTimezoneValueFromRegistry(objRegService, "E. South America Standard Time") & "#1" arrTimezone(20, 1) = GetTimezoneValueFromRegistry(objRegService, "SA Eastern Standard Time") & "#0" arrTimezone(21, 1) = GetTimezoneValueFromRegistry(objRegService, "Greenland Standard Time") & "#1" arrTimezone(22, 1) = GetTimezoneValueFromRegistry(objRegService, "Mid-Atlantic Standard Time") & "#1" arrTimezone(23, 1) = GetTimezoneValueFromRegistry(objRegService, "Azores Standard Time") & "#1" arrTimezone(24, 1) = GetTimezoneValueFromRegistry(objRegService, "Cape Verde Standard Time") & "#0" arrTimezone(25, 1) = GetTimezoneValueFromRegistry(objRegService, "Greenwich Standard Time") & "#0" arrTimezone(26, 1) = GetTimezoneValueFromRegistry(objRegService, "GMT Standard Time") & "#1" arrTimezone(27, 1) = GetTimezoneValueFromRegistry(objRegService, "W. Europe Standard Time") & "#1" arrTimezone(28, 1) = GetTimezoneValueFromRegistry(objRegService, "Central Europe Standard Time") & "#1" arrTimezone(29, 1) = GetTimezoneValueFromRegistry(objRegService, "Romance Standard Time") & "#1" arrTimezone(30, 1) = GetTimezoneValueFromRegistry(objRegService, "Central European Standard Time") & "#1" arrTimezone(31, 1) = GetTimezoneValueFromRegistry(objRegService, "W. Central Africa Standard Time") & "#0" arrTimezone(32, 1) = GetTimezoneValueFromRegistry(objRegService, "GTB Standard Time") & "#1" arrTimezone(33, 1) = GetTimezoneValueFromRegistry(objRegService, "E. Europe Standard Time") & "#1" arrTimezone(34, 1) = GetTimezoneValueFromRegistry(objRegService, "Egypt Standard Time") & "#1" arrTimezone(35, 1) = GetTimezoneValueFromRegistry(objRegService, "South Africa Standard Time") & "#0" arrTimezone(36, 1) = GetTimezoneValueFromRegistry(objRegService, "FLE Standard Time") & "#1" arrTimezone(37, 1) = GetTimezoneValueFromRegistry(objRegService, "Israel Standard Time") & "#0" arrTimezone(38, 1) = GetTimezoneValueFromRegistry(objRegService, "Arabic Standard Time") & "#1" arrTimezone(39, 1) = GetTimezoneValueFromRegistry(objRegService, "Arab Standard Time") & "#0" arrTimezone(40, 1) = GetTimezoneValueFromRegistry(objRegService, "Russian Standard Time") & "#1" arrTimezone(41, 1) = GetTimezoneValueFromRegistry(objRegService, "E. Africa Standard Time") & "#0" arrTimezone(42, 1) = GetTimezoneValueFromRegistry(objRegService, "Iran Standard Time") & "#1" arrTimezone(43, 1) = GetTimezoneValueFromRegistry(objRegService, "Arabian Standard Time") & "#0" arrTimezone(44, 1) = GetTimezoneValueFromRegistry(objRegService, "Caucasus Standard Time") & "#1" arrTimezone(45, 1) = GetTimezoneValueFromRegistry(objRegService, "Afghanistan Standard Time") & "#0" arrTimezone(46, 1) = GetTimezoneValueFromRegistry(objRegService, "Ekaterinburg Standard Time") & "#1" arrTimezone(47, 1) = GetTimezoneValueFromRegistry(objRegService, "West Asia Standard Time") & "#0" arrTimezone(48, 1) = GetTimezoneValueFromRegistry(objRegService, "India Standard Time") & "#0" arrTimezone(49, 1) = GetTimezoneValueFromRegistry(objRegService, "Nepal Standard Time") & "#0" arrTimezone(50, 1) = GetTimezoneValueFromRegistry(objRegService, "N. Central Asia Standard Time") & "#1" arrTimezone(51, 1) = GetTimezoneValueFromRegistry(objRegService, "Central Asia Standard Time") & "#0" arrTimezone(52, 1) = GetTimezoneValueFromRegistry(objRegService, "Sri Lanka Standard Time") & "#0" arrTimezone(53, 1) = GetTimezoneValueFromRegistry(objRegService, "Myanmar Standard Time") & "#0" arrTimezone(54, 1) = GetTimezoneValueFromRegistry(objRegService, "SE Asia Standard Time") & "#0" arrTimezone(55, 1) = GetTimezoneValueFromRegistry(objRegService, "North Asia Standard Time") & "#1" arrTimezone(56, 1) = GetTimezoneValueFromRegistry(objRegService, "China Standard Time") & "#0" arrTimezone(57, 1) = GetTimezoneValueFromRegistry(objRegService, "North Asia East Standard Time") & "#1" arrTimezone(58, 1) = GetTimezoneValueFromRegistry(objRegService, "Singapore Standard Time") & "#0" arrTimezone(59, 1) = GetTimezoneValueFromRegistry(objRegService, "W. Australia Standard Time") & "#0" arrTimezone(60, 1) = GetTimezoneValueFromRegistry(objRegService, "Taipei Standard Time") & "#0" arrTimezone(61, 1) = GetTimezoneValueFromRegistry(objRegService, "Tokyo Standard Time") & "#0" arrTimezone(62, 1) = GetTimezoneValueFromRegistry(objRegService, "Korea Standard Time") & "#0" arrTimezone(63, 1) = GetTimezoneValueFromRegistry(objRegService, "Yakutsk Standard Time") & "#1" arrTimezone(64, 1) = GetTimezoneValueFromRegistry(objRegService, "Cen. Australia Standard Time") & "#1" arrTimezone(65, 1) = GetTimezoneValueFromRegistry(objRegService, "AUS Central Standard Time") & "#0" arrTimezone(66, 1) = GetTimezoneValueFromRegistry(objRegService, "E. Australia Standard Time") & "#0" arrTimezone(67, 1) = GetTimezoneValueFromRegistry(objRegService, "AUS Eastern Standard Time") & "#1" arrTimezone(68, 1) = GetTimezoneValueFromRegistry(objRegService, "West Pacific Standard Time") & "#0" arrTimezone(69, 1) = GetTimezoneValueFromRegistry(objRegService, "Tasmania Standard Time") & "#1" arrTimezone(70, 1) = GetTimezoneValueFromRegistry(objRegService, "Vladivostok Standard Time") & "#1" arrTimezone(71, 1) = GetTimezoneValueFromRegistry(objRegService, "Central Pacific Standard Time") & "#0" arrTimezone(72, 1) = GetTimezoneValueFromRegistry(objRegService, "New Zealand Standard Time") & "#1" arrTimezone(73, 1) = GetTimezoneValueFromRegistry(objRegService, "Fiji Standard Time") & "#0" arrTimezone(74, 1) = GetTimezoneValueFromRegistry(objRegService, "Tonga Standard Time") & "#0" ' 'Render the select list ' %> <% set objRegService = nothing End Function '---------------------------------------------------------------------------- ' ' Function : GetTimezoneValueFromRegistry ' ' Synopsis : Get the timezone value from the registry key ' ' Arguments: In-objRegService : registry service ' In-strKey : English name of the timezone ' ' Returns : registry key value of the timezone ' '---------------------------------------------------------------------------- Function GetTimezoneValueFromRegistry(objRegService, strName) on error resume next Err.Clear CONST CONST_TIMEZONEPATH = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\" CONST CONST_STRING = 2 CONST CONST_KEYNAME = "Std" GetTimezoneValueFromRegistry = GetRegKeyValue(objRegService, CONST_TIMEZONEPATH & strName, CONST_KEYNAME, CONST_STRING) If Err.number <> 0 Then GetTimezoneValueFromRegistry = "" Exit Function end if End Function %>