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
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
Curtir tópico
+ 0
Responder
Posts
13/09/2005
Sanses
Olá
encontrei uma classe em C# que realiza esta operação:
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:
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
Clique aqui para fazer login e interagir na Comunidade :)