WMI no .NET

08/09/2005

0

Olá

Pelo que tenho vsto sobre WMI, é possível até desligar um computador remoto com ela, mas como usa-la com o .NET, não faço idéia.

Alguem poderia me ajudar ?

Grato
[]´s
Sanses


Sanses

Sanses

Responder

Posts

13/09/2005

Sanses

Olá

encontrei uma classe em C# que realiza esta operação:

using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
    public class CallWMIMethod
    {
        public static void Main()
        {
            try
            {
                ManagementObject classInstance = 
                    new ManagementObject("root\\CIMV2", 
                    "Win32_OperatingSystem.Name=´Microsoft Windows XP Professional|C:\WINDOWS|\Device\Harddisk0\Partition1´",
                    null);

                // no method in-parameters to define


                // Execute the method and obtain the return values.
                ManagementBaseObject outParams = 
                    classInstance.InvokeMethod("Shutdown", null, null);

                // List outParams
                Console.WriteLine("Out parameters:");
                Console.WriteLine("ReturnValue: " + outParams["ReturnValue"]);
            }
            catch(ManagementException err)
            {
                MessageBox.Show("An error occurred while trying to execute the WMI method: " + err.Message);
            }
        }
    }
}


Modifiquei a mesma para usar com Delphi. Compila corretamente. Mas quando executo, da erro dizendo que o caminho do objeto esta errado. Alguem pode ajudar. Por não ter conhecimento da linguagem C, não sei se converti o código corretamente.

Código Convertido:

unit Silmar;

interface

uses err;

type
  CallWMIMethod = class
  public
    class procedure Main; virtual;static; 
  end;
  
implementation

{$AUTOBOX ON}
{$HINTS OFF}
{$WARNINGS OFF}

class procedure CallWMIMethod.Main;
var
  outParams: ManagementBaseObject;
  classInstance: ManagementObject;
begin
  try
    classInstance := ManagementObject.Create(´root\CIMV2´, ´Win32_OperatingSystem.ReplaceKeyPropery=´´ReplaceKeyPropertyValue´´´, 
        nil);
    outParams := classInstance.InvokeMethod(´Shutdown´, nil, nil);
    Console.WriteLine(´Out parameters:´);
    Console.WriteLine((´ReturnValue: ´ + outParams[´ReturnValue´]));
  except
    on err: ManagementException do
      MessageBox.Show((´An error occurred while trying to execute the WMI method: ´ 
          + err.Message));
  end;
end;



Responder

13/09/2005

Sanses

Um erro na msg acima, no uses não é err e sim System.Management;


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar