.NET 3.x Как узнать время на компьютере в сети? - C#
Формулировка задачи:
Необходимо узнать текущее время на другом компьютере в сети.
Подскажите пожалуйста как это сделать.
Решение задачи: «.NET 3.x Как узнать время на компьютере в сети?»
textual
Листинг программы
- /// <param name="machineName">Название комьютера</param>
- /// <param name="userName">Имя пользователя в формате домен\имя</param>
- /// <param name="password">Пароль пользователя.</param>
- DateTime GetRemoteDateTime(string machineName, string userName = null, string password = null)
- {
- try
- {
- ManagementScope scope;
- if (userName != null && password != null)
- {
- string[] domainAndUser = userName.Split('\\');
- ConnectionOptions options = new ConnectionOptions
- {
- Username = domainAndUser[1],
- Password = password,
- Authority = "ntlmdomain:" + domainAndUser[0]
- };
- scope = new ManagementScope(string.Format(@"\\{0}\root\CIMV2", machineName), options);
- }
- else
- {
- scope = new ManagementScope(string.Format(@"\\{0}\root\CIMV2", machineName));
- }
- scope.Connect();
- ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_LocalTime");
- ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
- DateTime result = DateTime.MinValue;
- foreach (ManagementObject queryObj in searcher.Get())
- {
- result = new DateTime(
- Convert.ToInt32(queryObj["Year"]),
- Convert.ToInt32(queryObj["Month"]),
- Convert.ToInt32(queryObj["Day"]),
- Convert.ToInt32(queryObj["Hour"]),
- Convert.ToInt32(queryObj["Minute"]),
- Convert.ToInt32(queryObj["Second"])
- );
- }
- return result;
- }
- catch (ManagementException ex)
- {
- throw new ApplicationException("An error occurred while querying for WMI data", ex);
- }
- catch (UnauthorizedAccessException ex)
- {
- throw new ApplicationException("Connection error (user name or password might be incorrect)", ex);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д