.NET 3.x Как узнать время на компьютере в сети? - C#

Узнай цену своей работы

Формулировка задачи:

Необходимо узнать текущее время на другом компьютере в сети. Подскажите пожалуйста как это сделать.

Решение задачи: «.NET 3.x Как узнать время на компьютере в сети?»

textual
Листинг программы
  1. /// <param name="machineName">Название комьютера</param>
  2. /// <param name="userName">Имя пользователя в формате домен\имя</param>
  3. /// <param name="password">Пароль пользователя.</param>
  4. DateTime GetRemoteDateTime(string machineName, string userName = null, string password = null)
  5. {
  6.     try
  7.     {
  8.         ManagementScope scope;
  9.         if (userName != null && password != null)
  10.         {
  11.             string[] domainAndUser = userName.Split('\\');
  12.             ConnectionOptions options = new ConnectionOptions
  13.                 {
  14.                     Username = domainAndUser[1],
  15.                     Password = password,
  16.                     Authority = "ntlmdomain:" + domainAndUser[0]
  17.                 };
  18.             scope = new ManagementScope(string.Format(@"\\{0}\root\CIMV2", machineName), options);
  19.         }
  20.         else
  21.         {
  22.             scope = new ManagementScope(string.Format(@"\\{0}\root\CIMV2", machineName));
  23.         }
  24.         scope.Connect();
  25.    
  26.         ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_LocalTime");
  27.         ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
  28.         DateTime result = DateTime.MinValue;
  29.         foreach (ManagementObject queryObj in searcher.Get())
  30.         {
  31.             result = new DateTime(
  32.                 Convert.ToInt32(queryObj["Year"]),
  33.                 Convert.ToInt32(queryObj["Month"]),
  34.                 Convert.ToInt32(queryObj["Day"]),
  35.                 Convert.ToInt32(queryObj["Hour"]),
  36.                 Convert.ToInt32(queryObj["Minute"]),
  37.                 Convert.ToInt32(queryObj["Second"])
  38.             );
  39.         }
  40.         return result;
  41.     }
  42.     catch (ManagementException ex)
  43.     {
  44.         throw new ApplicationException("An error occurred while querying for WMI data", ex);
  45.     }
  46.     catch (UnauthorizedAccessException ex)
  47.     {
  48.         throw new ApplicationException("Connection error (user name or password might be incorrect)", ex);
  49.     }
  50. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы