Autor |
Beitrag |
webbi
      
Beiträge: 142
Win XP Pro SP2, Debian GNU/Linux 2.6
D5 Pro, D7 Pro, BDS2006, Kylix3, MS-VS 2005
|
Verfasst: Do 27.04.06 08:31
Hallo!
Ich möchte einen kleinen Dienst coden, der bei jeder Anmeldung reagiert.
Das ist eine RDP-Session die immer getrennt und wieder verbunden wird...
Aber wie frage ich ab, ob die Session grade aktiv ist oder nicht?
mfG
Webbi
_________________ Programmieren ist der Wettkampf zwischen Programmierer
die immer noch einfachere Programme schreiben und Anwender die immer noch dümmer werden...
|
|
nullplan001
      
Beiträge: 212
Win 2000 Professional, Debian Linux 4.0 (Etch,Stable)
Pascal (FreePascal 2.0.2, TurboPascal 7.0), C(++) (G++/GCC 3.4.2 + MinGW), Java (JDK 1.5.0_07), PHP (PHP 5.1.4)
|
Verfasst: Do 27.04.06 18:38
Öh.. Tja, spontan würde ich sagen, der Nutzer ist angemeldet, wenn es beim öffnen des Registry-Schlüssels HKCU zu keinem Fehler kommt. Weil, wenn der User nicht angemeldet ist, gibt es keinen Current User. Weis aber nicht, ob Windows den Schlüssel bei der Abmeldung immer unmountet, oder nur bei Neuanmeldung den alten überschreibt... Halt, ich Trottel. Jeder User hat seine User.dat. Da steht die Struktur HKCU drin. Wenn man sich abmeldet muss Windows zwangsläufig die user.dat entladen, oder Windows pflastert den RAM zu. Oder aber Windows wäre mal clever. Dann würde man die alte user.dat erst bei der Neuanmeldung entladen und mit der neuen überschrieben. Ach, ich hab keine Ahnung. Wenn du dich dazu herablassen willst, Umgebungsvariablen zu benutzen: Wenn es einen %username% gibt, gibt es auch einen User. Oder so ähnlich. Ich weis wiederum nicht, wie das im unangemeldeten Zustand ist.
Tschö,
nullplan
_________________ Ich fahr' nicht selber, weil ich festgestellt habe: ich fahre zu emotional. Bin 180 gefahren wo 30 erlaubt war... -- Jürgen von der Lippe
|
|
webbi 
      
Beiträge: 142
Win XP Pro SP2, Debian GNU/Linux 2.6
D5 Pro, D7 Pro, BDS2006, Kylix3, MS-VS 2005
|
Verfasst: Do 27.04.06 19:53
_________________ Programmieren ist der Wettkampf zwischen Programmierer
die immer noch einfachere Programme schreiben und Anwender die immer noch dümmer werden...
|
|
raiguen
      
Beiträge: 374
WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
|
Verfasst: Fr 28.04.06 09:17
Moin
Wenn's um den angemeldeten Benutzer geht, dann nimm das:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function UserName: PChar; var buf: array [Byte] of Char; size: Cardinal; begin size := SizeOf(buf); if GetUserName(@buf, size) then Result := @buf[0] else Result := nil; end; |
Unit SysUtils muss eingebunden sein.
|
|
Holgerx
      
Beiträge: 63
Erhaltene Danke: 27
Win95 - Win11 / MSServer2000 - MSServer2019
Delphi 6pro / XE4
|
Verfasst: Fr 28.04.06 12:10
Hallo,
hab diesen Quellcode mal gefunden:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| function WorkstationLocked: boolean; var hd: HDESK; dwLN: dword; pszIN: array [0..255] of char; s: string; begin hd := OpenInputDesktop(0, False, 0); if hd = 0 then begin WorkstationLocked := False; Exit; end; dwLN := 0; if not GetUserObjectInformation(hd, UOI_NAME, @pszIN, 256, dwLN) then begin WorkstationLocked := True; Exit; end; CloseDesktop(hd); s := AnsiLowerCase(Trim(Copy(pszIN, 0, 256))); WorkstationLocked := (s = 'winlogon'); end; |
Bei true ist kein Benutzer angemeldet.
Mit GetUserName bekommt man den User (meist 'SYSTEM') des Dienstes zurückgeliefert.
Schauii..
Holger
|
|
webbi 
      
Beiträge: 142
Win XP Pro SP2, Debian GNU/Linux 2.6
D5 Pro, D7 Pro, BDS2006, Kylix3, MS-VS 2005
|
Verfasst: Di 02.05.06 21:43
läuft...
Danke
_________________ Programmieren ist der Wettkampf zwischen Programmierer
die immer noch einfachere Programme schreiben und Anwender die immer noch dümmer werden...
|
|
Trunks
      
Beiträge: 62
winXP, win98, winME, debian, suse, maCoS, Symbian, WinCE
Delphi 7, Delhi 2006, c++, MySql, db2, php, js, java, c#, assembler,
|
Verfasst: So 07.05.06 01:43
Offtopic: Webbi? Ausm pimkie forum o.O?
|
|
|