На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> WMI: правильный запуск процессов
    Подскажите пожалуйста что делаю нетак?
    Пытаюсь запустить процесс на другом компьютере в сети.
    Процесс запускается и висит в диспетчере задач, а хотелось бы чтобы, он запускался нормально, в оконном режиме.

    делаю примерно так:

    ExpandedWrap disabled
                          ConnectionOptions options = new ConnectionOptions();
       
                          string ip =IpList[treeView1.SelectedNode.Index].ToString();
       
                          options.Username = textBox1.Text;
                          options.Password = textBox2.Text;
       
                          ManagementScope scope =new ManagementScope("\\\\" + ip + "\\root\\cimv2", options);
                          scope.Connect();
       
                          ManagementClass classInstance = new ManagementClass(scope,new ManagementPath("Win32_Process"), null);
                          ManagementClass startup = new ManagementClass("WIN32_ProcessStartup");
                          
                          startup.Scope = scope;
                          startup.Properties["CreateFlags"].Value = 8;
                          startup.Properties["ShowWindow"].Value = 3;
       
                          ManagementBaseObject inParams = classInstance.GetMethodParameters("Create");
                        
                          inParams["CurrentDirectory"] =Microsoft.VisualBasic.Interaction.InputBox("Введите пожалуйста"+
                              " путь, откуда будем запускать процесс\n"+
                              @"например: C:\\WINDOWS\\system32\\..." +
                              @"или C:\\Program Files\\...", "Запуск процесса", "", 10, 20);
                          
                          inParams["CommandLine"] = Microsoft.VisualBasic.Interaction.InputBox("Введите пожалуйста название процесса\n"+
                              " например: notepad.exe", "Запуск процесса", "", 10, 20);
                          inParams["ProcessStartupInformation"] = startup;
                          ManagementBaseObject outParams =classInstance.InvokeMethod("Create", inParams, null);


    Запускаю, ввожу соответственно C:\\WINDOWS\\system32\\ и notepad.exe
    , и как писал выше, в диспетчере задач он запускается, но на рабочем столе его не видно...
    Думаю, что что-то с параметрами ShowWindow не, так хотя msdn говорит, что
    ShowWindow может принемать значения от 0 до 11.

    3 = SW_SHOWMAXIMIZED
      Цитата arsenium @
      options.Username = textBox1.Text;
      options.Password = textBox2.Text;
      Десктоп его?
        да. хм, а если не его? но в процессах он всеравно отображается? т.е. можно например из под одной учетки админа, запустить процесс на десктопе другой?
        Сообщение отредактировано: arsenium -
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0234 ]   [ 16 queries used ]   [ Generated: 3.05.24, 19:01 GMT ]