Bonjour,

J'ai un petit problème pour utiliser le WMI de windows.
J'essaie de récupérer l'aresse MAC des cartes réseaux d'après un code sur internet trouvé avec google et je bloque au début du code.
Je fais les déclarations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
UnicodeString __fastcall TForm1::MACAdresse()
{
SWbemServices *WmiService;
SWbemObject *WmiObjet;
SWbemObjectSet *wmiObjetSet;
IEnumVariant *ObjectEnumerator;
OleVariant ArrayVariant;
LongWord  NumberItem;
TSWbemLocator *WMILocator;
}
Et le compilateur indique :
[BCC32 Erreur] Unit1.cpp(219): E2451 Symbole 'IEnumVariant' non défini
J'ai pourtant fait tous les includes. J'en ai même rajouter pou trouver celui qui manque :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#include <OleServer.hpp>
#include <Variants.hpp>
#include <WbemScripting_OCX.h>
#include <WbemScripting_TLB.h>
#include <SysUtils.hpp>
#include <ActiveX.hpp>
#include <ComObj.hpp>
#include <Oleauto.h>
#include <SysUtils.hpp>
Dans l'aide de c++Builder (ms-help://embarcadero.rs2009/Automat/html/139e3c93-faef-4003-9079-e0e94494db3e.htm) il est indiqué qu'il y a un fichier exemple Enumvar.cpp qui ne se trouve pas sur mon disque.

Avec Delphi, il n'y a aucun problème, tout fonctionne.

Une solution?

J'essaie de créer un numéro unique pour identifier une machine qui doit envoyer des données régulièrement dans une base de données. Et il faut que ce numéro soit toujours le même après un formatage, donc, je pensais faire un numéro basé sur l'adresse MAC. Si vous avez une autre idée à la place, je suis preneur.

Merci