Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TurboPascal Windows Benutzernamen anzeigen (https://www.delphipraxis.net/90415-turbopascal-windows-benutzernamen-anzeigen.html)

TUX_der_Pinguin 17. Apr 2007 09:22


TurboPascal Windows Benutzernamen anzeigen
 
Hallo,

es geht um Turbo Pascal 7, ich habe hier Beispiel Code mit dem ich den Computernamen eines Rechners ermitteln kann,
egal ob Win9x oder WinXP, jedoch würde ich gerne den Benutzernamen angezeigt bekommen und nicht den Computernamen.

Hat jemand eine idee wie man das hinbekommt !?

Code:
Function Netz_Name : String;
  Var
    Register : Registers;
    Puffer  : Array[1..15] Of Char;
    Temp    : String[15];
    Index   : Byte;
  Begin
    Temp := '';
    With Register Do Begin
      AH:= $5e;
      AL:= $0;
      DX := Ofs(Puffer);
      DS := Seg(Puffer);
      Intr($21,Register);
      If CH = 1 Then Begin
        For Index := 1 to 15 Do Temp := Temp + Puffer[Index];
        Temp := FCutBlankVH(Temp);
        Temp := UpString(Temp);
      End;{if}
    End;{with}
    Netz_Name := Temp;
  End;{Function Netz_Name}

mfg

TUX

Luckie 17. Apr 2007 10:04

Re: TurboPascal Windows Benutzernamen anzeigen
 
Keine Ahnung, wo der Code den Computernamen herholt, scheint aber mehr als abenteuerlich zu sein die Methode. Für beides gibt es API-Funktionen:
Delphi-Quellcode:
function GetCurrentUserW: WideString;
var
  Size             : DWORD;
begin
  Size := MAX_COMPUTERNAME_LENGTH * 2 + 1;
  SetLength(Result, Size);
  if GetUserNameW(PWideChar(Result), Size) then
    SetLength(Result, Size)
  else
    Result := '';
end;
Und eine Forensuche hätte dir auch schon die Antwort gegeben. Das nächste mal bitte erst suchen.

sakura 17. Apr 2007 10:09

Re: TurboPascal Windows Benutzernamen anzeigen
 
Zitat:

Zitat von Luckie
Für beides gibt es API-Funktionen:

Windows API-Funktionen in einem DOS-Programm? :gruebel:

Turbo Pascal 7 ist nicht Windows ;)

@TUX_der_Pinguin: Schau die mal die Umgebungsvariabeln an, die sollte man auf unter DOS ermitteln können. In USERNAME steht dann eigentlich auch der selbige drinne.

...:cat:...

Luckie 17. Apr 2007 10:11

Re: TurboPascal Windows Benutzernamen anzeigen
 
Gut, er sprach zwar von Turbo Pascal 7 aber eben auch von Windows 98 und Windows XP, daher bin ich davon ausgegangen, es ginge im die Windows Benutzernamen in einem Programm, das unter Windows läuft.

TUX_der_Pinguin 17. Apr 2007 10:16

Re: TurboPascal Windows Benutzernamen anzeigen
 
Ja es geht um den Windows Benutzernamen in einem quasi Dos Programm welches in TurboPascal geschrieben ist.
Daher sind Windows API Funtkionen von Delphi nicht verfügbar.

An die Umgebungsvariablen habe ich auch gedacht nur gibt es 'USERNAME' unter WinXP aber nicht unter Win9x.
Daher auch keine Lösung.

Luckie 17. Apr 2007 10:25

Re: TurboPascal Windows Benutzernamen anzeigen
 
Zitat:

Zitat von TUX_der_Pinguin
Daher sind Windows API Funtkionen von Delphi nicht verfügbar.

Abgesehen mal davon dass diese Aussage keinen Sinn ergibt, kann man sich die Windows-API Funktionen auch selber Importieren. (Einfach aus der Windows.pas rauskopieren.)

TUX_der_Pinguin 17. Apr 2007 10:38

Re: TurboPascal Windows Benutzernamen anzeigen
 
Also ich wüßte nicht wie ich in einem TurboPascal Programm Windows API Funktionen rein bekomme.

Luckie 17. Apr 2007 10:41

Re: TurboPascal Windows Benutzernamen anzeigen
 
Was ist denn eigentlich ein "quasi" DOS-Programm? Entweder Schwanger oder nicht, "quasi" schwanger gibt es nicht. :?

TUX_der_Pinguin 17. Apr 2007 10:44

Re: TurboPascal Windows Benutzernamen anzeigen
 
Ich wollte damit ausdrücken das es ein DOS Programm ist welches unter Windows läuft,
aber diese ganze diskussion bringt mir nix, ich würde gern mit dem Problem weiter
kommen den Benutzernamen von einem Windows PC in einem DOS Programm anzuzeigen.

Bernhard Geyer 17. Apr 2007 10:46

Re: TurboPascal Windows Benutzernamen anzeigen
 
Ist es wirklich ein DOS-Programm oder ein Consolen-Programm?

Für ein DOS-Programm kannst du die Umgebungsvariable USERNAME abfragen, für ein Consolen-Programm ist Luckie-Lösung zu empfehlen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 Uhr.
Seite 1 von 3  1 23      

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