Appel à une fonction WMI

Appel à une fonction WMI - Delphi/Pascal - Programmation

Marsh Posté le 29-09-2005 à 18:54:19    

Salut
 
je fais appel à une fonction WMI (EnableStatic) faisant partie de 'Win32_NetworkAdapterConfiguration'.
 
Cette fonction permet de changer l'adresse IP de la machine sur l'adaptateur réseau 0.
 
Voici la signature de la fonction:

Code :
  1. uint32 EnableStatic(
  2.   string IPAddress[],
  3.   string SubnetMask[]
  4. );
  5. Parameters
  6. IPAddress
  7.     [in] Lists all the static IP addresses for the current network adapter. Example: 155.34.22.0.
  8. SubnetMask
  9.     [in] Subnet masks that complement the values in the IPAddress parameter. Example: 255.255.0.0.


 
Voici mon code faisant appel à la fonction:
 

Code :
  1. var
  2.   WService: SWbemServices;
  3.   WClass: SWbemObject;
  4.   WMethod: SWbemMethod;
  5.   WInParameters: SWbemObject;
  6.   WInParameteIPAddress: SWbemProperty;
  7.   WInParameteSubnetMask: SWbemProperty;
  8.   Parametre1, Parametre2: OleVariant;
  9.   WResult: SWbemObject;
  10.   WReturnValue: OleVariant;
  11. begin
  12.   WService := SWbemLocator.ConnectServer('.', 'ROOT\CIMV2', '', '', '', '', wbemConnectFlagUseMaxWait, nil);
  13.   WClass   := WService.Get('Win32_NetworkAdapterConfiguration', 0, nil);
  14.   WMethod := WClass.Methods_.Item('EnableStatic', 0);
  15.   WInParameters := WMethod.InParameters.SpawnInstance_(0);
  16.   WInParameteIPAddress  := WInParameters.Properties_.Item('IPAddress', 0);
  17.   Parametre1 := '192.168.51.47';
  18.   WInParameteIPAddress.Set_Value(Parametre1);
  19.   Parametre1 := WInParameteIPAddress.Name;
  20.   WInParameteSubnetMask := WInParameters.Properties_.Item('SubnetMask', 0);
  21.   Parametre2 := '255.255.255.0';
  22.   WInParameteSubnetMask.Set_Value(Parametre2);
  23.   Parametre2 := WInParameteSubnetMask.Name;
  24.   WResult := WClass.ExecMethod_('EnableStatic', WInParameters, wbemFlagReturnWhenComplete, nil);
  25.   WReturnValue := WResult.Properties_.Item('ReturnValue', 0);
  26. end;


 
Le probème qui se pose c'est lorsque ExecMethod s'exécute, j'ai une exception qui me dit 'Paramètres de méthode non valide.'
 
 :pfff: pourtant mes paramètres sont corrects.....  :cry:  
 
si quelqu'un a une idée !!!


Message édité par Olyv le 30-09-2005 à 11:01:28
Reply

Marsh Posté le 29-09-2005 à 18:54:19   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed