UserName Überprüfung



  • Hi, wie schon bekannt schreibe ich gerade an eionem Chat für unsere Klasse in der Schule.

    Ist auch soweit gut, nun will ich verhindern, das jeder den Chat starten kann, dies hab ich schon mit einem PW getan, aber ich möchte gerne noch einen Teil des aktuellen einloggnamens überprüfen.

    Wie?

    Also wenn wir uns einloggen tun wir dies immer mit "ITA2Cnnnn"

    ITA2C = Name der Klasse
    nnnn = ersten 4 Buchstaben des nachnames des Users

    Und direkt die Frage dabei:

    wenn ich den ITA2C´s zugriff geben kann, kann ich doch theoretisch auch einzelnenn MItschülern den Chat verbieten oder?

    BItte um Hilfe, hab bisher nur die Funktion GetUserName(szBuf, &dwSize); gefunden, aber ich weiß nicht wie ich die einbinden soll, weil die HIlfe auf Engliosch ist bei Systemfunktionen.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • TCHAR szUserName[1024];
    GetUserName(szUserName, 1024);
    


  • Was ist TChar? Und wieso 1024?

    Bitte beschreib doch mal, aus 2 einzelnen Zeilen werde ich doch nciht schlau und kann es nicht ableiten -.-*



  • TCHAR, damit es sowohl mit ANSI als auch mit UNICODE geht...
    und 1024 einfach nur so, falls jemand viel Lust hat einen Langen Namen sich auszudenken... (Pipi kommt schon fast dran 😉 )



  • OK, da ich aber weiß das die Logionnamen nciht länger als 10 zeichen sind geht auch TCHAR name[10] oder?

    Und dann kann ich anch ausführen der Funktion getUserName in der Variable name den Einloggnamen lesen?



  • Kovu schrieb:

    OK, da ich aber weiß das die Logionnamen nciht länger als 10 zeichen sind geht auch TCHAR name[10] oder?

    Vermutlich 11, da ja auch noch das NUL-Zeichen reinpassen muss... 😉

    Kovu schrieb:

    Und dann kann ich anch ausführen der Funktion getUserName in der Variable name den Einloggnamen lesen?

    ??? Den Satz hab ich jetzt nicht verstanden 😕



  • Kovu schrieb:

    Und dann kann ich anch ausführen der Funktion getUserName in der Variable name den Einloggnamen lesen?

    Ja eigentlich schon. Das ist doch die Funktionsweise von GetUserName.

    mfg.



  • Jochen Kalmbach schrieb:

    TCHAR szUserName[1024];
    GetUserName(szUserName, 1024);
    

    So nicht ganz richtig. Der zweite Parameter ist ein Pointer.
    So gehts:

    #include <tchar.h>
    #include <lmcons.h>
    
    ...
    
      DWORD size = UNLEN;
      TCHAR buf[UNLEN + 1];
    
      if ( ! GetUserName(buf, &size) )
    	... fehler ...;
    

    Holt Usernamen mit maximaler Länge. Mit kürzeren Namen würde ich gar nicht erst rumbasteln.



  • mgs schrieb:

    So nicht ganz richtig. Der zweite Parameter ist ein Pointer.

    Upps... eine der wenigen Funktionen, die sowas haben... hab ich übersehen 😞



  • Du bist ein Opfer der Inkonsistenz der API geworden. 😉 Siehe auch hier:

    BOOL GetComputerName(
      LPTSTR lpBuffer,
      LPDWORD lpnSize
    );
    
    BOOL GetUserName(
      LPTSTR lpBuffer,
      LPDWORD nSize
    );
    
    UINT GetWindowsDirectory(
      LPTSTR lpBuffer,
      UINT uSize
    );
    
    UINT GetSystemDirectory(
      LPTSTR lpBuffer,
      UINT uSize
    );
    

    Wie man bei den ersten beiden Beispielen sieht, wird noch nicht mal die Ungarische Notation konsequent angewendet: lpnSize und nSize. Und dann hab eich noch mal ein solches Funktionspaar gesehen, da waren beid er einen Funktion Buffer und Size vertauscht. Das Beispiel finde ich aber leider nicht mehr.



  • Melde das doch über den "Feedback" Button (What did you think of this topic?) ganz unten zurück! Es ist wirklich erstaunlich, aber manchmal bekommt man da wirklich ein "Feedback" zurück 😉



  • Fach-Englisch kann ich zwar relativ flüssig lesen und verstehen, aber ob ich es so gut schreiben kann, dass die auch mein Anliegen verstehen, bin ich mir nicht so sicher. Aber wenn du es meldest, würde ich mich über ein Feedback deinerseits freuen, was daraus geworden ist.



  • Nur ohne E-Mail kann ich Dir halt kein Feedback geben 😢



  • Uups. http://www.michael-puff.de/impressum.php

    Bin ja mal gespannt, was da zurückkommt. 😃



  • Naja... ich hoffe das die Mail ankommt...

    Warning: main(): Unable to access /var/www/l3s11195/html/includes/copyright.inc in /var/www/l3s11195/html/php/mail.php on line 60

    Warning: main(/var/www/l3s11195/html/includes/copyright.inc): failed to open stream: No such file or directory in /var/www/l3s11195/html/php/mail.php on line 60

    Warning: main(): Failed opening '/var/www/l3s11195/html/includes/copyright.inc' for inclusion (include_path='.') in /var/www/l3s11195/html/php/mail.php on line 60



  • Uups. Ja ist angekommen. Da hat nur eine unwichtige datei gefehlt, die inkludiert werden sollte. Danke für deine Mühe.


Anmelden zum Antworten