Interrogation wmi / cim v2 en c

Soyez le premier à donner votre avis sur cette source.

Vue 3 681 fois - Téléchargée 550 fois

Description

Interrogation de la base WMI (Windows Management Instrumentation) avec du WQL et du COM, en C (pas de C++ !).
Compile en ASCII, Unicode et MBCS sous VS2010.

Il est possible de modifier la requête WQL dans le main, ainsi que l'attribut souhaité.
La fonction dans My_Print.h/c sert à imprimer le résultat brut...
Vous pouvez faire une autre fonction (avec la même valeur de retour (void) et les même paramètres (VARIANT, int), en pointeur sur fonction) et l'utiliser à la place de la mienne, si vous souhaitez interroger d'autres attributs ou classes...

Si vous donnez un ou des arguments au programme, j'ai fais en sorte que seule la valeur s'affiche (modifiez donc un peu la sortie si ça vous intéresse d'afficher autre chose...), et sans argument j'ai supposé que c'était lancé au double-clic donc nécessité de mettre un "Appuyer sur une toucher pour continuer" afin de checker le résultat.

Attention aux leaks mémoire ! Il doit y en avoir PLEIN... n'essayez donc pas d'en faire un service... mais plutot un programme contenu dans un script.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
42
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
19 septembre 2012

@Ghuysman99 : C'était vraiment pour avoir une idée de quoi correspond à quoi vu que tout est DWORD dans le C/Windows de mes souvenirs...
Mais j'ai pas réfléchi 5 secondes à aller voir les types prédéfinis de Microsoft... :P

Merci de la remarque, je me charge de ça très vite !
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
12
Très mauvaise idée d'utiliser ces noms de variables :
>>> DWORD int32 = 0;
>>> DWORD int16 = 0;
>>> DWORD int8 = 0;
>>> DWORD uint32 = 0;
>>> DWORD uint16 = 0;
>>> DWORD uint8 = 0;
>>> float flott = 0.;
>>> double doubble = 0.;
>>> BOOLEAN boolean = FALSE;
Il y en a surement quelques-uns qui ont dans un header
quelque chose comme ceci :
#define uint32 unsigned int
#define uint8 unsigned char
Boujour,

C'est interessant. L'outils de base est déjà quelque chose de chouette, mais c'est pas simple les première fois.
Tu devrais essayer de vérifier les fuites, par contre, histoire de s'assurer de leur absence. :p

Bonne journée

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.