comment connaitre le login de la personne connectée localement?
9 réponses
Eric B
Bonjour,
Je souhaite que mon application (un service WINDOWS NT/2000 créé en
C++Builder4) puisse différencier l'Administrateur des autres utilisateurs
autorisés sur un ordinateur donné.
Pour bien faire, il faut reconnaitre l'utilisateur dès l'ouverture de la
session locale.
Par ailleurs, existe-t-il un moyen de déterminer si une session locale est
ouverte ou non ?
Merci d'avance pour votre aide,
Eric BILLOT
Conextel
71 rue de Bellevue
92100 Boulogne
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Philippot
Eric B wrote:
Pour bien faire, il faut reconnaitre l'utilisateur dès l'ouverture de la session locale. Par ailleurs, existe-t-il un moyen de déterminer si une session locale est ouverte ou non ?
J'utilise actuellement un code similaire à ce qui suit dans un service NT (il faudra adapter pour BCB)
::ImpersonateLoggedOnUser(hToken); // nécessaire sinon GetUserName va échouer: nous sommes dans un service ::GetUserName(sUserName.GetBuffer(MAX_USERNAMELEN), &dwLen); ::RevertToSelf();
sUserName.ReleaseBuffer();
::CloseHandle(hToken); ::CloseHandle(hProcess); } } // else : pas de session active
m_bActiveSession = !sUserName.IsEmpty();
return sUserName; }
Le test sur la fenêtre Progman fonctionne aussi sous Win9x (mais pas le code qui suit).
-- Patrick Philippot - Microsoft MVP [.Net] MainSoft Consulting Services www.mainsoft.xx (remplacez .xx par .fr si vous répondez par e-mail)
Eric B wrote:
Pour bien faire, il faut reconnaitre l'utilisateur dès l'ouverture de
la session locale.
Par ailleurs, existe-t-il un moyen de déterminer si une session
locale est ouverte ou non ?
J'utilise actuellement un code similaire à ce qui suit dans un service
NT (il faudra adapter pour BCB)
::ImpersonateLoggedOnUser(hToken); // nécessaire sinon GetUserName va
échouer: nous sommes dans un service
::GetUserName(sUserName.GetBuffer(MAX_USERNAMELEN), &dwLen);
::RevertToSelf();
sUserName.ReleaseBuffer();
::CloseHandle(hToken);
::CloseHandle(hProcess);
}
}
// else : pas de session active
m_bActiveSession = !sUserName.IsEmpty();
return sUserName;
}
Le test sur la fenêtre Progman fonctionne aussi sous Win9x (mais pas le
code qui suit).
--
Patrick Philippot - Microsoft MVP [.Net]
MainSoft Consulting Services
www.mainsoft.xx
(remplacez .xx par .fr si vous répondez par e-mail)
Pour bien faire, il faut reconnaitre l'utilisateur dès l'ouverture de la session locale. Par ailleurs, existe-t-il un moyen de déterminer si une session locale est ouverte ou non ?
J'utilise actuellement un code similaire à ce qui suit dans un service NT (il faudra adapter pour BCB)
::ImpersonateLoggedOnUser(hToken); // nécessaire sinon GetUserName va échouer: nous sommes dans un service ::GetUserName(sUserName.GetBuffer(MAX_USERNAMELEN), &dwLen); ::RevertToSelf();
sUserName.ReleaseBuffer();
::CloseHandle(hToken); ::CloseHandle(hProcess); } } // else : pas de session active
m_bActiveSession = !sUserName.IsEmpty();
return sUserName; }
Le test sur la fenêtre Progman fonctionne aussi sous Win9x (mais pas le code qui suit).
-- Patrick Philippot - Microsoft MVP [.Net] MainSoft Consulting Services www.mainsoft.xx (remplacez .xx par .fr si vous répondez par e-mail)
Arnaud Debaene
Patrick Philippot wrote:
Eric B wrote: HWND hProgman = FindWindow("Progman", NULL);
Progman ??? Tu utilises encore Progman ?
Arnaud
Patrick Philippot wrote:
Eric B wrote:
HWND hProgman = FindWindow("Progman", NULL);
Eric B wrote: HWND hProgman = FindWindow("Progman", NULL);
Progman ??? Tu utilises encore Progman ?
Arnaud
François Müller
Bonjour
"Eric B" escribió en el mensaje news:bj9bil$fet$ | merci pour cette suggestion, je crois que cela répond précisément à mon | besoin.
Il y a peut être une autre solution en plus de celle décrite par P.Philipppot : utiliser le LsaEnumLogonSession (j'ai pas aprofondi)
François
Bonjour
"Eric B" <e.billot@free.fr> escribió en el mensaje
news:bj9bil$fet$1@reader1.imaginet.fr...
| merci pour cette suggestion, je crois que cela répond précisément à mon
| besoin.
Il y a peut être une autre solution en plus de celle décrite par
P.Philipppot : utiliser le LsaEnumLogonSession (j'ai pas aprofondi)
"Eric B" escribió en el mensaje news:bj9bil$fet$ | merci pour cette suggestion, je crois que cela répond précisément à mon | besoin.
Il y a peut être une autre solution en plus de celle décrite par P.Philipppot : utiliser le LsaEnumLogonSession (j'ai pas aprofondi)
François
Patrick Philippot
François Müller wrote:
"Eric B" escribió en el mensaje news:bj9bil$fet$ Il y a peut être une autre solution en plus de celle décrite par P.Philipppot : utiliser le LsaEnumLogonSession (j'ai pas aprofondi)
Bonjour,
LsaEnumerateLogonSessions?
Requirements Windows NT/2000/XP: Included in Windows XP and Windows .NET Server.
Ah, béni soit le jour où il n'y aura plus d'utilisateurs Win9x, NT4 ou 2000 :-)
-- Patrick Philippot - Microsoft MVP [.Net] MainSoft Consulting Services www.mainsoft.xx (remplacez .xx par .fr si vous répondez par e-mail)
François Müller wrote:
"Eric B" <e.billot@free.fr> escribió en el mensaje
news:bj9bil$fet$1@reader1.imaginet.fr...
Il y a peut être une autre solution en plus de celle décrite par
P.Philipppot : utiliser le LsaEnumLogonSession (j'ai pas aprofondi)
Bonjour,
LsaEnumerateLogonSessions?
Requirements
Windows NT/2000/XP: Included in Windows XP and Windows .NET Server.
Ah, béni soit le jour où il n'y aura plus d'utilisateurs Win9x, NT4 ou
2000 :-)
--
Patrick Philippot - Microsoft MVP [.Net]
MainSoft Consulting Services
www.mainsoft.xx
(remplacez .xx par .fr si vous répondez par e-mail)
"Eric B" escribió en el mensaje news:bj9bil$fet$ Il y a peut être une autre solution en plus de celle décrite par P.Philipppot : utiliser le LsaEnumLogonSession (j'ai pas aprofondi)
Bonjour,
LsaEnumerateLogonSessions?
Requirements Windows NT/2000/XP: Included in Windows XP and Windows .NET Server.
Ah, béni soit le jour où il n'y aura plus d'utilisateurs Win9x, NT4 ou 2000 :-)
-- Patrick Philippot - Microsoft MVP [.Net] MainSoft Consulting Services www.mainsoft.xx (remplacez .xx par .fr si vous répondez par e-mail)
François Müller
Bonjour
"Patrick Philippot" escribió en el mensaje news:bj9qs5| | LsaEnumerateLogonSessions? | | Requirements | Windows NT/2000/XP: Included in Windows XP and Windows .NET Server. | | Ah, béni soit le jour où il n'y aura plus d'utilisateurs Win9x, NT4 ou | 2000 :-)
Oupss... au temps pour moi ...
François
Bonjour
"Patrick Philippot" <patrick.philippot@mainsoft.xx> escribió en el mensaje
news:bj9qs5|
| LsaEnumerateLogonSessions?
|
| Requirements
| Windows NT/2000/XP: Included in Windows XP and Windows .NET Server.
|
| Ah, béni soit le jour où il n'y aura plus d'utilisateurs Win9x, NT4 ou
| 2000 :-)
"Patrick Philippot" escribió en el mensaje news:bj9qs5| | LsaEnumerateLogonSessions? | | Requirements | Windows NT/2000/XP: Included in Windows XP and Windows .NET Server. | | Ah, béni soit le jour où il n'y aura plus d'utilisateurs Win9x, NT4 ou | 2000 :-)
Oupss... au temps pour moi ...
François
Patrick Philippot
François Müller wrote:
Oupss... au temps pour moi ...
Tiens, c'est rare quelqu'un qui orthographie correctement cette expression d'origine militaire ou musicale. Quoiqu'il y ait encore débat sur ce point. Voir http://www.langue-fr.net/index/A/au_temps-autant.htm
-- Patrick Philippot - Microsoft MVP [.Net] MainSoft Consulting Services www.mainsoft.xx (remplacez .xx par .fr si vous répondez par e-mail)
François Müller wrote:
Oupss... au temps pour moi ...
Tiens, c'est rare quelqu'un qui orthographie correctement cette
expression d'origine militaire ou musicale. Quoiqu'il y ait encore débat
sur ce point. Voir http://www.langue-fr.net/index/A/au_temps-autant.htm
--
Patrick Philippot - Microsoft MVP [.Net]
MainSoft Consulting Services
www.mainsoft.xx
(remplacez .xx par .fr si vous répondez par e-mail)
Tiens, c'est rare quelqu'un qui orthographie correctement cette expression d'origine militaire ou musicale. Quoiqu'il y ait encore débat sur ce point. Voir http://www.langue-fr.net/index/A/au_temps-autant.htm
-- Patrick Philippot - Microsoft MVP [.Net] MainSoft Consulting Services www.mainsoft.xx (remplacez .xx par .fr si vous répondez par e-mail)
Arnaud Debaene
Patrick Philippot wrote:
Arnaud Debaene wrote:
Progman ??? Tu utilises encore Progman ?
Eh oui, toi aussi d'ailleurs :-)). Cette fenêtre existe toujours dès que Explorer tourne que ce soit sous Win9x, NT, 2000 ou XP. Regarde avec Spy++.
Exact, autant pour moi! J'ai réagi instinctivement en pensant au programme Progman de Win 3.1 (touours distribué dans Windows d'ailleurs)....
Arnaud
Patrick Philippot wrote:
Arnaud Debaene wrote:
Progman ??? Tu utilises encore Progman ?
Eh oui, toi aussi d'ailleurs :-)). Cette fenêtre existe toujours dès
que Explorer tourne que ce soit sous Win9x, NT, 2000 ou XP. Regarde
avec Spy++.
Exact, autant pour moi! J'ai réagi instinctivement en pensant au programme
Progman de Win 3.1 (touours distribué dans Windows d'ailleurs)....
Eh oui, toi aussi d'ailleurs :-)). Cette fenêtre existe toujours dès que Explorer tourne que ce soit sous Win9x, NT, 2000 ou XP. Regarde avec Spy++.
Exact, autant pour moi! J'ai réagi instinctivement en pensant au programme Progman de Win 3.1 (touours distribué dans Windows d'ailleurs)....
Arnaud
Patrick Philippot
Arnaud Debaene wrote:
Exact, autant pour moi! J'ai réagi instinctivement en pensant au programme Progman de Win 3.1 (touours distribué dans Windows d'ailleurs)....
Je dois dire que j'ai été surpris quand j'ai découvert cette fenêtre cachée récemment. Mais je suis bien content qu'elle soit là car cela résout de manière simplissime mon problème qui est identique à celui d'Eric. D'autant plus que mon service NT fonctionne aussi en pseudo-service sous Win9x (exe unique).
-- Patrick Philippot - Microsoft MVP [.Net] MainSoft Consulting Services www.mainsoft.xx (remplacez .xx par .fr si vous répondez par e-mail)
Arnaud Debaene wrote:
Exact, autant pour moi! J'ai réagi instinctivement en pensant au
programme Progman de Win 3.1 (touours distribué dans Windows
d'ailleurs)....
Je dois dire que j'ai été surpris quand j'ai découvert cette fenêtre
cachée récemment. Mais je suis bien content qu'elle soit là car cela
résout de manière simplissime mon problème qui est identique à celui
d'Eric. D'autant plus que mon service NT fonctionne aussi en
pseudo-service sous Win9x (exe unique).
--
Patrick Philippot - Microsoft MVP [.Net]
MainSoft Consulting Services
www.mainsoft.xx
(remplacez .xx par .fr si vous répondez par e-mail)
Exact, autant pour moi! J'ai réagi instinctivement en pensant au programme Progman de Win 3.1 (touours distribué dans Windows d'ailleurs)....
Je dois dire que j'ai été surpris quand j'ai découvert cette fenêtre cachée récemment. Mais je suis bien content qu'elle soit là car cela résout de manière simplissime mon problème qui est identique à celui d'Eric. D'autant plus que mon service NT fonctionne aussi en pseudo-service sous Win9x (exe unique).
-- Patrick Philippot - Microsoft MVP [.Net] MainSoft Consulting Services www.mainsoft.xx (remplacez .xx par .fr si vous répondez par e-mail)
Eric B
La suggestion de Patrick a parfaitement fonctionné pour mon service. Ce problème est maintenant résolu!
Merci encore
Eric
"Patrick Philippot" a écrit dans le message de news: bjah6i$q22$
Arnaud Debaene wrote: > Exact, autant pour moi! J'ai réagi instinctivement en pensant au > programme Progman de Win 3.1 (touours distribué dans Windows > d'ailleurs)....
Je dois dire que j'ai été surpris quand j'ai découvert cette fenêtre cachée récemment. Mais je suis bien content qu'elle soit là car cela résout de manière simplissime mon problème qui est identique à celui d'Eric. D'autant plus que mon service NT fonctionne aussi en pseudo-service sous Win9x (exe unique).
-- Patrick Philippot - Microsoft MVP [.Net] MainSoft Consulting Services www.mainsoft.xx (remplacez .xx par .fr si vous répondez par e-mail)
La suggestion de Patrick a parfaitement fonctionné pour mon service.
Ce problème est maintenant résolu!
Merci encore
Eric
"Patrick Philippot" <patrick.philippot@mainsoft.xx> a écrit dans le message
de news: bjah6i$q22$1@biggoron.nerim.net...
Arnaud Debaene wrote:
> Exact, autant pour moi! J'ai réagi instinctivement en pensant au
> programme Progman de Win 3.1 (touours distribué dans Windows
> d'ailleurs)....
Je dois dire que j'ai été surpris quand j'ai découvert cette fenêtre
cachée récemment. Mais je suis bien content qu'elle soit là car cela
résout de manière simplissime mon problème qui est identique à celui
d'Eric. D'autant plus que mon service NT fonctionne aussi en
pseudo-service sous Win9x (exe unique).
--
Patrick Philippot - Microsoft MVP [.Net]
MainSoft Consulting Services
www.mainsoft.xx
(remplacez .xx par .fr si vous répondez par e-mail)
La suggestion de Patrick a parfaitement fonctionné pour mon service. Ce problème est maintenant résolu!
Merci encore
Eric
"Patrick Philippot" a écrit dans le message de news: bjah6i$q22$
Arnaud Debaene wrote: > Exact, autant pour moi! J'ai réagi instinctivement en pensant au > programme Progman de Win 3.1 (touours distribué dans Windows > d'ailleurs)....
Je dois dire que j'ai été surpris quand j'ai découvert cette fenêtre cachée récemment. Mais je suis bien content qu'elle soit là car cela résout de manière simplissime mon problème qui est identique à celui d'Eric. D'autant plus que mon service NT fonctionne aussi en pseudo-service sous Win9x (exe unique).
-- Patrick Philippot - Microsoft MVP [.Net] MainSoft Consulting Services www.mainsoft.xx (remplacez .xx par .fr si vous répondez par e-mail)