Detection du Login sur machine.

Résolu
albanovisch Messages postés 22 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 30 octobre 2008 - 1 sept. 2008 à 15:35
albanovisch Messages postés 22 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 30 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.


Voilà si vous avez une idée ,aidez-moi.

6 réponses

albanovisch Messages postés 22 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 30 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 .
3
cs_norton Messages postés 215 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 21 août 2011
1 sept. 2008 à 16:03
Hello,
As tu essayer de recuperer le login avec la variable %USERNAME% ?
pour voir depuis le cmd tape "set" ou echo %USERNAME%
@+
Norton
0
albanovisch Messages postés 22 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 30 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.
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
1 sept. 2008 à 20:52
Slt,
Si j'ai bien compris, tu veux récupérer le nom de l'utilisateur qui est logué (l'utilisateur courant).(?)
Si oui :

char *Nom=(char*)malloc(256*sizeof(char));
LPDWORD ml=256;
GetUserName (Nom,&ml);
printf("%s", Nom);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
albanovisch Messages postés 22 Date d'inscription mardi 30 janvier 2007 Statut Membre Dernière intervention 30 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.
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
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".
0
Rejoignez-nous