albanovisch
Messages postés22Date d'inscriptionmardi 30 janvier 2007StatutMembreDernière intervention30 octobre 2008
-
1 sept. 2008 à 15:35
albanovisch
Messages postés22Date d'inscriptionmardi 30 janvier 2007StatutMembreDernière intervention30 octobre 2008
-
4 sept. 2008 à 15:14
Bonjour, je travaille en c++ sur une application qui va se charger de récupérer qui veut se loger sur la machine.
J'ai beau regardé un peu partout je n'arrive pas à savoir comment
faire. J'utilise un service pour réaliser cette tâche, donc si
j'utilise les fonctions basics comme getUsername cela ne fonctionne
pas, il faudrait que j'obtienne le message windows indiquant qu'un
utilisateur vient de se loger et que je récupère le login de l'utilisateur.
albanovisch
Messages postés22Date d'inscriptionmardi 30 janvier 2007StatutMembreDernière intervention30 octobre 2008 4 sept. 2008 à 15:14
Pour celui que ca intéresse, j'ai fait un petit programme qui permet de savoir qui est logé sur la machine.
J'utilise la liste des SID de windows qui sont sur l'ordinateur local, ensuite grace à ces SID j'ouvre la base de registre dans
HKEY_USERS\\SID\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer et la valeur recherché est dans 'Logon User Name'.
Si on iter sur tous les SID alors on obtient les utilisateurs logé sur la machine. Grâce à ca je sais qui se log sur la machine et qui se delog.
Voila merci à tous et bon courage .
albanovisch
Messages postés22Date d'inscriptionmardi 30 janvier 2007StatutMembreDernière intervention30 octobre 2008 1 sept. 2008 à 16:14
...C'est pas du tout ca mon problème, le truc c'est de recevoir un message lorsqu'un utilisateur se connecte sur l'ordinateur et avec ce message choppé l'utilisateur qui c'est connecté à ta machine.
Mon but est de détecté chaque utilisateur se logant sur le système.
albanovisch
Messages postés22Date d'inscriptionmardi 30 janvier 2007StatutMembreDernière intervention30 octobre 2008 2 sept. 2008 à 09:18
Pas du tout comme je viens de l'expliquer, mon programme est de marré en service windows et va recuper les informations de login sur la machine.
Ton getUserName ne fonctionne que pour un programme qui est démarre après le login de l'utilisateur.
Si tu fais un getusername sur un programme demarré en service il te renvoie System en utilisateur ...
Moi je cherche à connaitre le message qui est envoyer par le system aux autres programmes pour indiquer qu'un utilisateur est entrain de se loger sur le poste.
Avec ce message recuperer l'utilisateur qui a reussi a se loger.
racpp
Messages postés1909Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 201417 2 sept. 2008 à 23:10
Salut,
Je ne connais pas de message Windows indiquant qu'un utilisateur vient de se loguer. Mais je pense que tu peux utiliser la base de registres pour y arriver. Tu crées un Event dans ton service. Tu appelles la fonction RegNotifyChangeKeyValue() pour détecter la modification dans la clé HKEY_USERS. Cette fonction positionne ton Event passé en paramètre. La fonction WaintForSingleObject() permet d'attendre le positionnement de l'Event. Tu dois te renseigner sur la structure de la clé HKEY_USERS pour connaitre la sous-clé ou les valeurs qui sont modifiées à la suite d'un logon.
Il existe aussi un autre moyen consistant à faire des DLLs servant à detecter les événements de WinLogon. Ca s'appelle "Winlogon Notification Packages".