Windows Network Information Manipulation - PullRequest
0 голосов
/ 01 июля 2011

Я работаю инженером-стажером в сетевой компании, и меня раздражает необходимость время от времени менять информацию об IP.

Мне нужно создать программное обеспечение, которое поможет мне изменить эти данныебез труда.Мне удалось установить информацию об IP.Но у меня все еще есть проблемы.

  1. Мне нужно запустить программу от имени администратора [щелчок правой кнопкой мыши], есть ли способ запрограммировать ее при запуске?
  2. Как я могу изменить адаптер на DHCP?

Код довольно длинный, и я надеюсь, что он вас не утомит.Но я использовал Management

  • Класс управления
  • Базовый объект управления
  • Коллекция объектов управления в моей разработке.

I 'Я предпочитаю создать свою собственную программу для развития моих навыков программирования.Но если есть приложение для этого, я не против знать.

Ответы [ 2 ]

1 голос
/ 01 июля 2011

Я надеюсь, что этот ответ даст вам некоторое понимание и направление движения.

Хорошо, сетевой адаптер один не , что прямолинейно, но я полагаю, что вы можете достичь этого с WMI, особенно это объект WMI здесь . В документации MSDN рассказывается обо всех свойствах, методах (которые есть для настройки DHCP и т. Д.), А также типах данных и значениях, которые он принимает. Это может быть одним из подходов, поскольку использование WMI через C # довольно просто. Хотелось бы привести вам пример, но я никогда раньше не использовал этот конкретный класс WMI. Вы также можете получить доступ к указанному выше классу WMI через Visual Studio Server Explorer, который вы можете увидеть здесь. ... и у вас есть метод "EnableDHCP", который вы, вероятно, ищете.

enter image description here

Что касается запроса на запуск вашей программы с правами администратора, то здесь приведен код из моего проекта установки в моей среде. Это происходит до того, как он запускает какую-либо форму или логику, запрашивает глагол «runas», который вызывает UAC (если Windows имеет Vista / 7 и запрашивает привилегии администратора у пользователя)

namespace Setup {
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    using Setup.Forms;
    using System.Security.Principal;
    using System.Diagnostics;

    static class Program {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main() {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
            bool administrativeMode = principal.IsInRole(WindowsBuiltInRole.Administrator);

            if (!administrativeMode) {
                ProcessStartInfo startInfo = new ProcessStartInfo();
                startInfo.Verb = "runas";
                startInfo.FileName = Application.ExecutablePath;
                try {
                    Process.Start(startInfo);
                }
                catch {
                    return;
                }
                return;
            }

            Application.Run(new ShellForm());
        }
    }
}

Что касается программы для этого, Windows Network Connection Manager? Я знаю, что это громоздко из-за всех диалогов, но ... оно уже есть.

0 голосов
/ 01 июля 2011

Мне когда-то приходилось писать очень похожую программу.Я использовал некоторый исходный код из этих двух проектов, чтобы помочь мне начать: Проект Chameleon и Настройка параметров TCP / IP с помощью WMI и C #

Проект Chameleonпроект C #, помогающий изменить сетевые настройки определенного адаптераДругой проект - это руководство по использованию C # для изменения настроек сети с использованием WMI и C #.Вы можете посмотреть на исходный код и учиться на нем, чтобы помочь вам создать собственное программное обеспечение, которое делает то, что вам нужно.

...