Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [C++] Username auslesen (https://www.delphipraxis.net/63051-%5Bc-%5D-username-auslesen.html)

Airblader 13. Feb 2006 13:06


[C++] Username auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hiho ;)
Ich werkel grad etwas mit C++ rum und les dabei ein paar Daten wie PC-Name aus etc.
U.a. auch den Usernamen, und zwar so:

Code:
/* user name */
if( !GetUserName(pData.UserName, &countChar) )
{
   cout << "reading user name failed!" << endl;
}
pData ist ein struct und UserName vom Typ TChar :)
Fehler bekomme ich keinen, wenn ich nun das Ganze aber mit diesem hier ausgeben lasse:

Code:
cout << "user name: " << string(pData.UserName) << endl;
bekomme ich schlichtweg eine ganze Menge eines komischen NonSense-Zeichens.

Alles andere past aber perfekt - woran kann das liegen?

Achja, kann folgende Sache damit zusammenhängen?
Ich habe mehrere Bentuzer aufm PC und will eig. per registry einen direkt starten, also ohne auswählen zu müssen. Irgendwie klappt das aber auch nicht, trotz ForceAutoLogon. Ist da vielleicht an meinem System grundlegend was "am Arsch"? :gruebel:


Edit:
Ich sehe grade, das Auslesen klappt nicht. Lass ich die Ausgabe weg, sehe ich die fehlermeldung, dass er den Usernamen nicht lesen konnte :gruebel:

Edit2:
Bei nem Kumpel funktionierts irgendwie (WinXP Home). Ich hab XP Prof.

Edit3:
Hab mal angehängt, was ich bekomme

air

Luckie 13. Feb 2006 13:42

Re: [C++] Username auslesen
 
Code:
#include <windows.h>
#include <stdio.h>

#define INFO_BUFFER_SIZE 32767


void main()
{
   TCHAR Buffer[INFO_BUFFER_SIZE];
   DWORD bufCharCount = INFO_BUFFER_SIZE;
   if( !GetUserName( Buffer, &bufCharCount ) )
      printf( "%d, GetLastError()" );
   else
      printf( "\nUser name:         %s", Buffer );
}

Airblader 13. Feb 2006 13:47

Re: [C++] Username auslesen
 
Auf gut Deutsch GetLatError ausgeben ;)
Bekomme ich ein nettes "122" als Ausgabe. ;)

air

Luckie 13. Feb 2006 13:49

Re: [C++] Username auslesen
 
122: "Der an einen Systemaufruf übergebene Datenbereich ist zu klein." Dein Buffer ist wohl zu klein. Zeig mal mehr Code.

Airblader 13. Feb 2006 13:53

Re: [C++] Username auslesen
 
Nuja, was soll ich groß sagen?

Code:
#define INFO_BUFFER_SIZE 32767

struct dataBuf
{
   TCHAR ComputerName[INFO_BUFFER_SIZE];
   TCHAR UserName[INFO_BUFFER_SIZE];
   TCHAR SysDir[INFO_BUFFER_SIZE];
   TCHAR WinDir[INFO_BUFFER_SIZE];
};

...

dataBuf pData;
   DWORD   countChar = INFO_BUFFER_SIZE;

if( !GetUserName(pData.UserName, &countChar) )
{
   cout << GetLastError() << endl;
}

...

cout << "user name: " << string(pData.UserName) << endl;
Hab praktisch das selbe wie bei msdn (wo du zitiert hast ;) ), nur z.T. andere Namen.

air

Luckie 13. Feb 2006 13:56

Re: [C++] Username auslesen
 
Geht es denn ohne die Struct?

Airblader 13. Feb 2006 13:59

Re: [C++] Username auslesen
 
Ne, auch nich :(
Einziger Unterschied: Am Ende der Zeichen steht nicht der Pfad sondern ein anderes Zeichen (das ich vom Sehen her kenne, aber keinen Namen dafür habe ;) ). Welches das ist, dürfte ja aber wohl eh egal sein...

air

Airblader 14. Feb 2006 15:12

Re: [C++] Username auslesen
 
*PUSH*
Das es an sich nicht tut, ist zwar nicht wichtig. Nur wie gesagt vermute ich ja förmlich, dass an meinem System was putt is...
Jemand noch 'ne Idee (außer Formatieren *fg*)

air

Luckie 14. Feb 2006 15:19

Re: [C++] Username auslesen
 
Ghet denn mein Code in einem neunen leeren Projekt?

Airblader 14. Feb 2006 15:21

Re: [C++] Username auslesen
 
Seltsam....ja, es geht. Aber was soll mir das sagen? :gruebel:

air


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz