Autor Beitrag
stiftmaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: Do 15.05.03 19:17 
Ich habe zu Hause einen SuSE 7.3 Server.
An dem melde ich mich bei jedem Start von meinem Windows-Cliens an.
Das klappt auch alles einwandfrei.
Jetzt möchte ich per Delphi-Programm wissen ob ich am Server angemeldet bin und wenn ja mit welchem Benutzer.
Kann mir jemand sagen ob dies möglich ist und wenn ja, wie...

Dankend Stefan
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Fr 16.05.03 04:28 
Schaue Dir einfach mal diesen Link an :

...den aktuellen Benutzernamen ermitteln?
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Fr 16.05.03 07:13 
Hier die Funktion:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
Function UserName: String;
Var 
  Name: PChar;
  Size: DWord;
Begin
  Size :=100;
  Name := StrAlloc (Size);
  Try
    GetUserName (Name, Size);
    Result := String (Name);
  Finally
    StrDispose (UName);
  End;
End;
PC-22
Hält's aus hier
Beiträge: 15

WIN XP
D6 Pers
BeitragVerfasst: Di 07.12.04 10:50 
bis11 hat folgendes geschrieben:
Schaue Dir einfach mal diesen Link an :

...den aktuellen Benutzernamen ermitteln?

kann das sein, dass der link nich mehr funzt? :wink:
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 07.12.04 11:01 
Der Server scheint ein Problem zu haben. Ich komme auch nicht drauf (auch nicht direkt, ohne link). Probier es später nochmal.
PC-22
Hält's aus hier
Beiträge: 15

WIN XP
D6 Pers
BeitragVerfasst: Di 07.12.04 11:07 
gibt es auch einen andere möglichkeit den aktuellen benutzer zu erfahren, sprich aus der regisrty auslesen?
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 07.12.04 11:14 
Ein Schnipselchen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
var
  reg : TRegistry;
  PCAnmeldename : String;
  PCName : String;
  ProgrammAnmeldung : String;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('\Network\Logon',False);
  PCAnmeldename := reg.ReadString('username');
  reg.OpenKey('\System\CurrentControlSet\Control\ComputerName\ComputerName',False);
  PCName := reg.ReadString('ComputerName');
  reg.Free;
end;
PC-22
Hält's aus hier
Beiträge: 15

WIN XP
D6 Pers
BeitragVerfasst: Di 07.12.04 11:38 
bei mir funzt das net.
Folgende Fehlermeldungen:

Undefinierter Bezeichner: 'TRegistry'
Undefinierter Bezeichner: 'HKEY_LOCAL_MACHINE'
Operator oder Semikolon fehlt paar mal

kann das an Delphi 6 liegen?


Zuletzt bearbeitet von PC-22 am Di 07.12.04 11:43, insgesamt 1-mal bearbeitet
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 07.12.04 11:41 
Du musst noch im Uses die Unit Registry eintragen. Hatte ich leider vergessen aufzuschreiben.
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 07.12.04 11:42 
Binde mal die Unit Registry mit ein.
PC-22
Hält's aus hier
Beiträge: 15

WIN XP
D6 Pers
BeitragVerfasst: Di 07.12.04 11:52 
wie lautet die Unit Registry?

liegt das evtl. an delphi 6?
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 07.12.04 11:59 
Ganz oben in deiner Unit steht irgendwo "USES" und dahinter eine Liste von eingebundenen Units. Dort schreibst du einfach "Registry", allerdings ohne " mit rein.
Ich benutze zwar D5, aber ich glaube in D6 heißt die Unit immer noch "Registry".

Übrigens scheinst du dafür eine separate Unit zu benutzen. Dann musst du auch noch die Unit "Windows" mit einbinden.
PC-22
Hält's aus hier
Beiträge: 15

WIN XP
D6 Pers
BeitragVerfasst: Di 07.12.04 12:30 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
  begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName\',False);
  PCName := reg.ReadString('ComputerName');
  reg.Free;


so stehts bei mir jetzt in code aber in der log steht nichts
wenn der code zur ausgabe

writeln(f, 'Benutzer: ',PCName);

ist.
f steht für die log und andere sachen schreibt er auch rein.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 07.12.04 12:51 
Statt mit ControlSet001 schon mal mit CurrentControlSet probiert?
Ansonsten wird es nicht auf jedem PC sicher funktionieren.

Mach doch nach dem Lesen der Werte ein ShowMessage(PCName)

Äh, wolltest du nicht den Anmeldenamen wissen?
PC-22
Hält's aus hier
Beiträge: 15

WIN XP
D6 Pers
BeitragVerfasst: Di 07.12.04 13:05 
könntest du den zusammen gehängenden code posten? ;)
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 07.12.04 13:08 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
unit blabla;

uses
  Windows, Registry;

Implementation
  procedure Test;

Interface

procedure Test;
var
  reg : TRegistry;
  PCAnmeldename : String;
  PCName : String;
  ProgrammAnmeldung : String;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('\Network\Logon',False);
  PCAnmeldename := reg.ReadString('username');
  reg.Free;
  ShowMessage(PCAnmeldename);
end;


Schlag mich nicht, wenn jetzt irgenwo was fehlt. Ich hab das nur mal so reingehackt.
BudBundi666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

Win 95, Win 98, Win XP
D6 Pers
BeitragVerfasst: Di 07.12.04 19:05 
Titel: Quelltext des fertigen Programms
Hey Plaschki hab das Prog jetzt geändert und bei mir at home funzt das super kannst ja mal bei dir probieren.
Und schreib mal wie es bei dir läuft.

Bud

ausblenden volle Höhe Delphi-Quelltext
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:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
program Bitches2;

{$APPTYPE CONSOLE}

uses
  SysUtils, Registry, Windows;

var
  F: TextFile;
  Zeit, Benutzer, dir: string;
  FileHandle: Integer;
  Reg: TRegistry;

begin
//Programmanfang
//Lesen des Benutzernamens
begin
  Reg := TRegistry.Create;  //Zuweisen VAR Reg zum Abkürzen in Zukunft
  try
  Reg.RootKey:=HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName', false) then
    //Wenn der Key geöffnet wurde wird das untere ausgeführt
    begin
      Benutzer:=Reg.ReadString('ComputerName');
      //In VAR Benutzer wir der String geschriben
      Reg.CloseKey; //Der Key wird wieder geschlossen
    end;
  finally
    Reg.Free;  //Registry wird wieder frei gegeben
  end;
end;
//Benutzername wurde gelesen
//Lesen Zeit und akt. Pfad
{$I-}
Zeit:= FormatDateTime('dddd," den" dd mmmm, yyyy," um "hh:mm', Now); //Format akt. Zeit
GetDir(0,dir);                                     //Packt aktuellen Pfad in VAR dir
//Zeit und Pfad wurde gelesen
if not FileExists('c:\65bitches.log') then         //Prüft ob LOG da
   begin
   //Erstellen der LOG falls nicht da
      FileHandle:=FileCreate('c:\65bitches.log');  //Erstellt LOG wenn nicht da
                                                   //Und setzt FileHandle der LOG gleich
      FileClose(FileHandle);                       //LOG wird geschlossen
   end;
   //Log wurde erstellt

//Starten der LOG und gleich das erste LOGgen
assignfile(F, 'c:\65bitches.log');            //Weißt 65bitches.log Variable F zu
reset(F);                                     //Öffnet LOG
Append(F);                                    //Dateizeiger an das Ende setzen
writeln(F, 'Programm gestartet in: '+ dir,' '); //Schreibt Startordner in LOG
writeln(F, 'Von Benutzer: ',Benutzer);      //Schreibt Benutzer in LOG
writeln(F, 'Startzeit: ',Zeit,' Uhr');        //Schreibt Startzeit in LOG
write(F,  'Aktion auf Desktop: ');            //Schreibt Anfang der Aktion in LOG
  if DirectoryExists('c:\dokume~1\alluse~1\Desktop\40³Å³Å') then //prüft ob Ordner da
  begin
  //Und löscht die erstellten Ordner auf dem Desktob falls da
        writeln(F, 'Erstellte Ordner LÖSCHEN!');   //Schreibt Ende des LOG
        chDir('c:\dokume~1\alluse~1\desktop\');    //aktuellen Ordner wechseln
        removeDir('1³Åų');                        //Beginn des löschen der Ordner
        removeDir('2ÅųÅ');
        removeDir('3³³³³');
        removeDir('4ųų');
        removeDir('5³³³Å');
        removeDir('6ÅÅÅÅ');
        removeDir('7³ÅÅÅ');
        removeDir('8ÅųÅ');
        removeDir('9³³³³');
        removeDir('10ųÅÅ');
        removeDir('11ÅÅÅÅ');
        removeDir('12ųų');
        removeDir('13³³Å³');
        removeDir('14³Å³³');
        removeDir('15ÅųÅ');
        removeDir('16ų³³');
        removeDir('17ųų');
        removeDir('18ų³Å');
        removeDir('19³³³Å');
        removeDir('20³Å³³');
        removeDir('21ųų');
        removeDir('22ÅÅų');
        removeDir('23³³³Å');
        removeDir('24ÅųÅ');
        removeDir('25ÅÅų');
        removeDir('26³³Å³');
        removeDir('27ųų');
        removeDir('28³Åų');
        removeDir('29³³³Å');
        removeDir('30Åų³');
        removeDir('31³³ÅÅ');
        removeDir('32³³³³');
        removeDir('33Åų³');
        removeDir('34Åų³');
        removeDir('35³Å³³');
        removeDir('36ÅųÅ');
        removeDir('37ÅųÅ');
        removeDir('38³Å³³');
        removeDir('39ÅÅų');
        removeDir('40³Å³Å');
        removeDir('41³ÅÅÅ');
        removeDir('42³³ÅÅ');
        removeDir('43³ÅÅÅ');
        removeDir('44³³Å³');
        removeDir('45³Åų');
        removeDir('46³Åų');
        removeDir('47³Å³³');
        removeDir('48ÅųÅ');
        removeDir('49ųÅÅ');
        removeDir('50³Åų');
        removeDir('51³Å³³');
        removeDir('52ÅųÅ');
        removeDir('53³Åų');
        removeDir('54ų³Å');
        removeDir('55ųÅÅ');
        removeDir('56³³³Å');
        removeDir('57³ÅÅÅ');
        removeDir('58³³Å³');
        removeDir('59ÅųÅ');
        removeDir('60³³ÅÅ');
        removeDir('61ųÅÅ');
        removeDir('62ÅųÅ');
        removeDir('63³³³³');
        removeDir('64ųÅÅ');
        removeDir('65³Åų');            //Ende des löschen der Ordner
     end
     //Die Ordner auf dem Desktop wurden gelöscht
else
     begin
     //Falls nicht vorhanden, werden Ordner auf dem Desktop erstellt
        writeln(F, 'Ordner erstellen.');          //Schreibt Ende des LOG
        chDir('c:\dokume~1\alluse~1\desktop');    //wechseln des aktuellen Ordners
        createDir('1³Åų');                       //Anfang des erstellen der Ordner
        createDir('2ÅųÅ');
        createDir('3³³³³');
        createDir('4ųų');
        createDir('5³³³Å');
        createDir('6ÅÅÅÅ');
        createDir('7³ÅÅÅ');
        createDir('8ÅųÅ');
        createDir('9³³³³');
        createDir('10ųÅÅ');
        createDir('11ÅÅÅÅ');
        createDir('12ųų');
        createDir('13³³Å³');
        createDir('14³Å³³');
        createDir('15ÅųÅ');
        createDir('16ų³³');
        createDir('17ųų');
        createDir('18ų³Å');
        createDir('19³³³Å');
        createDir('20³Å³³');
        createDir('21ųų');
        createDir('22ÅÅų');
        createDir('23³³³Å');
        createDir('24ÅųÅ');
        createDir('25ÅÅų');
        createDir('26³³Å³');
        createDir('27ųų');
        createDir('28³Åų');
        createDir('29³³³Å');
        createDir('30Åų³');
        createDir('31³³ÅÅ');
        createDir('32³³³³');
        createDir('33Åų³');
        createDir('34Åų³');
        createDir('35³Å³³');
        createDir('36ÅųÅ');
        createDir('37ÅųÅ');
        createDir('38³Å³³');
        createDir('39ÅÅų');
        createDir('40³Å³Å');
        createDir('41³ÅÅÅ');
        createDir('42³³ÅÅ');
        createDir('43³ÅÅÅ');
        createDir('44³³Å³');
        createDir('45³Åų');
        createDir('46³Åų');
        createDir('47³Å³³');
        createDir('48ÅųÅ');
        createDir('49ųÅÅ');
        createDir('50³Åų');
        createDir('51³Å³³');
        createDir('52ÅųÅ');
        createDir('53³Åų');
        createDir('54ų³Å');
        createDir('55ųÅÅ');
        createDir('56³³³Å');
        createDir('57³ÅÅÅ');
        createDir('58³³Å³');
        createDir('59ÅųÅ');
        createDir('60³³ÅÅ');
        createDir('61ųÅÅ');
        createDir('62ÅųÅ');
        createDir('63³³³³');
        createDir('64ųÅÅ');
        createDir('65³Åų');             //Ende des erstellen der Ordner
end;
//Ordner wurden auf dem Desktop erstellt
writeln(F, ' ');
writeln(F, ' ');                         //Schreibt 2 leere Zeilen zur Übersicht in LOG
Flush(F);                                //Leert den Puffer
CloseFile(F);                            //Schließt LOG
end.
//Programmende
PC-22
Hält's aus hier
Beiträge: 15

WIN XP
D6 Pers
BeitragVerfasst: Di 07.12.04 22:19 
bei mir funzt es auch, nur das bei dir Benutzer der Computername ist und nicht der aktuell angemeldete Benutzer ;)

ich werde meins nochmal überarbeiten und es dir dann morgen posten
PC-22
Hält's aus hier
Beiträge: 15

WIN XP
D6 Pers
BeitragVerfasst: Di 07.12.04 22:23 
Problem: WO finde ich den Benutzernamen in der Registry?
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 08.12.04 08:01 
Du öffnest den falschen Key. Schau dir nochmal meinen Source an.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.OpenKey('\Network\Logon',False);
  PCAnmeldename := reg.ReadString('username');
  reg.Free;