Nom de session

pagd Messages postés 7 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 12 novembre 2008 - 8 nov. 2008 à 19:48
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 12 nov. 2008 à 17:59
Bonjour,

j'aimerai savoir comment récupérer le nom de la session que l'utilisateur utilise ?
Est ce qu'une fonction, API, fait ca ?

Je suis en Visual C++ 6 (pas .NET) sous XP.
Je suis aussi en train de développer un Service ce qui fait que la fonction GetUserName me renvoie SYSTEM quelque-soit la session Windows.

Merci d'avance

9 réponses

jeffy131 Messages postés 123 Date d'inscription samedi 14 juillet 2007 Statut Membre Dernière intervention 29 mars 2009 1
9 nov. 2008 à 16:53
C'est une FAQ Win32 (depuis 1993...)
Donc demander sur le newsgroup pro des apis win32 :
news://194.177.96.26/fr.comp.os.ms-windows.programmation
où cela a souvent été discuté
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 nov. 2008 à 21:37
Devrait aller depuis un service system.


int bnUserImpersonate()
{
  HANDLE htok, hdup;
  DWORD dwession;
  int bret = 0;
  dwession = WTSGetActiveConsoleSessionId();
  if(dwession == 0xFFFFFFFF) goto usrnameEXIT;
  if(!WTSQueryUserToken(dwession, &htok)) goto usrnameEXIT;
  if(!htok) goto usrnameEXIT; // DES FOIS QUE...
  if(!DuplicateToken(htok, SecurityImpersonation, &hdup)) goto closeTOK;
  bret = ImpersonateLoggedOnUser(hdup);
  CloseHandle(hdup);
closeTOK: CloseHandle(htok);
usrnameEXIT: return bret;
}




void TestImpersonate()
{
  char buf[260];
  DWORD len;
  if(!bnUserImpersonate()) return;
  len = 260;
  if(!GetUserName(buf, &len)) return;
  // buf contient UserName
}

ciao...
BruNews, MVP VC++
0
pagd Messages postés 7 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 12 novembre 2008
10 nov. 2008 à 10:45
Merci pour l'info,

je n'ai pas WTSGetActiveConsoleSessionId

y a pas plus simple ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 nov. 2008 à 10:50
VC++ 2008 Express est gratuit et librement téléchargeable.
Que soit avec l'honorable ancêtrre qu'est VC6 ou avec le 2008, il faut installer le platform SDK actuel (c'est gratos aussi).

ciao...
BruNews, MVP VC++
0

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

Posez votre question
pagd Messages postés 7 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 12 novembre 2008
10 nov. 2008 à 11:29
Merci pour l'info,

si j'installe VC++ 2008 Express, est ce que mon vieux VC++ 6 et tous mes anciens développements tourneront encore ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 nov. 2008 à 13:22
Bien entendu SI c'est codé correctement.

TUTO DE POSE: http://www.cppfrance.com/code.aspx?ID=38359
DOWNLOAD: http://www.microsoft.com/express/download/

ciao...
BruNews, MVP VC++
0
pagd Messages postés 7 Date d'inscription lundi 29 novembre 2004 Statut Membre Dernière intervention 12 novembre 2008
12 nov. 2008 à 00:15
Bon j'ai installé C++ 2008 Express

Y a plein de *SDK en téléchargement, c'est lequel le "platform SDK" dont tu parles ?

Merci
JM
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
12 nov. 2008 à 16:43
Je crois que c'est ça :
http://www.microsoft.com/downloads/details.aspx?FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc&DisplayLang=en

Le "windows platform sdk" a été remplacé par le "windows sdk" semble-t-il.

On télécharge un .exe qui permet de sélectionner quelles parties du SDK on souhaite. Donc dans ton cas, il faut virer tout ce qui est .NET. Le principal en ce qui te concerne, ça doit être "Developer tools->Windows headers and libraries->Header Files + x86 Libraries".

Mais la doc Win32, les exemples et les tools sont peut être bien aussi.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 nov. 2008 à 17:59
rt15, merci pour le lien, c'est bien celui ci.
Les tools, si pas de MFC ni DotNetteries, totalement iinutile.

La seule doc utile c'est MSDN qui n'est pas compris dans le sdk, il faut le télécharger à part pour installation en local (très nettement plus confortable à consulter que sur le net).

ciao...
BruNews, MVP VC++
0
Rejoignez-nous