Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: FAQ - C++ Builder (VCL/CLX) ::  System - Namen des NT-Users auslesen     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
beginner
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.11.2002
Beiträge: 2
Beitrag beginner Mitglied 11:57:00 12.11.2000   Titel:   System - Namen des NT-Users auslesen            Zitieren

Hallo,

wie kann man denn den User-Namen (nicht das Login !!!) bei NT auslesen ?

habe da die Funktion >> GetUserName(szBuf, &dwSize); << gefunden, aber die liest nur das Login aus und nicht den wirklichen Namen des Users. Der muß aber auch irgendwo stehen, weil ich Programme habe, bei denen das mit ausgelesen wird !!!

Für Hilfe wäre ich sehr dankbar !!!

[ Dieser Beitrag wurde am 30.06.2002 um 18:38 Uhr von Jansen editiert. ]
Werbeunterbrechung
Happy Builder
Mitglied

Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 486
Beitrag Happy Builder Mitglied 09:10:00 13.11.2000   Titel:              Zitieren

Probiere es mal mit folgendem Code:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
BOOL GetCurrentUserAndDomain(PTSTR szUser, PDWORD pcchUser,
      PTSTR szDomain, PDWORD pcchDomain);
 
 
void __fastcall TMainForm::btGetUserAndDomain(TObject *Sender)
{
    char    cayUser[255];
    DWORD   cchUser = 255;
    char    cayDomain[255];
    DWORD   cchDomain = 255;
 
    GetCurrentUserAndDomain(cayUser, &cchUser, cayDomain, &cchDomain);
 
// Nach erfolgreicheim Aufruf ist in cayUser und cayDomain der aktulle Name und die Domain.
}
//


[ 09.07.2001: Beitrag editiert von: Happy Builder ]
ratfury
Mitglied

Benutzerprofil
Anmeldungsdatum: 04.05.2000
Beiträge: 205
Beitrag ratfury Mitglied 16:06:00 13.11.2000   Titel:              Zitieren

HI!

Ich glaube ich habe einen einfacheren Code.

DWORD dwSize = 0;

// Determine how many chars we need to store user name
GetUserName(NULL, &dwSize);

// create a buffer that is big enough
char *szBuf = new char[dwSize];
szBuf[0] = '\0';

// Read the user name and place it in a label
GetUserName(szBuf, &dwSize);
UserName->Caption = szBuf;;


------------------
-=[r@tfury]=-
beginner
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.11.2002
Beiträge: 2
Beitrag beginner Mitglied 20:49:00 15.11.2000   Titel:              Zitieren

Tja, schade, aber alle Versuche finden das gleiche Ergebnis: Das NT-LOGIN ( das mit dem man sich anmeldet !!! )

Wenn ich die Arbeitsstation sperre, dann kommt die Nachricht:... kann nur von...oder dem User xxx (Name -des Users- Vorname)

und letzteres hätte ich gerne ausgelesen !!!
Das in der Klammer !!!
Happy Builder
Mitglied

Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 486
Beitrag Happy Builder Mitglied 09:35:00 16.11.2000   Titel:              Zitieren

Probiere es mal mit folgendem Code.

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <lm.h>
 
AnsiString GetUserFullname(AnsiString strUsername)
{
    AnsiString strFullname;
    PNET_DISPLAY_USER pBuff, p;
    DWORD res, dwRec, i = 0;
 
 
   do // begin do
   {
      //
      // Call the NetQueryDisplayInformation function;
      //   specify information level 1 (user account information).
      //  This code returns the data in chunks of 25 bytes to
      //  demonstrate how to make the request over and over again.
      //
      res = NetQueryDisplayInformation(WideString(""), 1, i, 1000, 25, &dwRec, (void **)&pBuff);
      //
      // If the call succeeds,
      //
      if((res==NERR_Success) | | (res==ERROR_MORE_DATA))
      {
         p = pBuff;
         for(;dwRec>0;dwRec--)
         {
            //
            // Print the retrieved user information.
            //
            if (strUsername == p->usri1_name)
            {
            strFullname = p->usri1_full_name;
            }
 
            //
            // If there is more data, set the index.
            //
            i = p->usri1_next_index;
            p++;
         }
         //
         // Free the allocated memory.
         //
         NetApiBufferFree(pBuff);
      }
   //
   // Continue while there is more data.
   //
   } while (res==ERROR_MORE_DATA); // end do
 
 
    return strFullname;
}



------------------
Happy Building
wünscht
Happy Builder
Ein Besuch der sich lohnt: http://www.bcbarena.de


Zuletzt bearbeitet von Jansen am 14:52:17 21.01.2004, insgesamt 1-mal bearbeitet
c++.de :: FAQ - C++ Builder (VCL/CLX) ::  System - Namen des NT-Users auslesen   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.