Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Who's logged on? (https://www.delphipraxis.net/94554-whos-logged.html)

Luckie 23. Jun 2007 06:22


Who's logged on?
 
Liste der Anhänge anzeigen (Anzahl: 2)
LoggedOn
Das Programm LoggedOn listet alle Benutzer auf, die an einem Computer zur Zeit angemeldet sind und über welchen Server sie authentifiziert wurden.

Inspiriert hat mich ein gleichnamiges Programm von Olli. Ich bin heute im PSDK über die Netzwerkfunktion gestolpert und habe mich erinnert, dass Olli das irgendwie anders gemacht hat, komplizierter (umständlicher?). Da wollte ich es mit eben der entsprechenden API-Funktion mal probieren. ;)

Features:
- Scannen eines einzelnen Rechners
- Scannen einer Arbeitsgruppe / Domain
- Animation und mitlaufende Zeit während des Scans
- Informationen über Rechner (Name, IP, Betriebssystem, ...)
- Informationen über eingeloggten Benutzer (Name, Logondomain, Logonserver)
- Rechner im Netzwerk können remote runtergefahren werden
- Uptime der Remoterechner wird angezeigt (neu in Version 2.1)

Basilikum 23. Jun 2007 07:28

Re: Who's logged on?
 
dein Tool listet - egal welchen Server ich auswähle - immer exakt die selbe Liste... dies ist auch nicht sehr verwunderlich:
Delphi-Quellcode:
class function TUsers.GetAllUsers(Machine: WideString): TUsers;
var
[...]
  try
    err := NetWkstaUserEnum('', 1, bufPtr, MAX_PREFERRED_LENGTH, entriesread, totalentries, resumehandle);
    if err = NERR_SUCCESS then
Bei NetWkstaUserEnum müsste wohl als erster Parameter der Name des Ziel-Servers übergeben werden (Machine)...

BTW: Kann es Zufall sein, dass einige Funktionen in deiner Tools-Unit exakt identisch sind wie die gleichnamigen in der SysUtils ? :-)

turboPASCAL 23. Jun 2007 07:52

Re: Who's logged on?
 
Liste der Anhänge anzeigen (Anzahl: 1)
:gruebel: Muss man nun ein Netzwerk haben oder listet das Tool auch alle angemeldeten User
an einem XP-System ?

Luckie 23. Jun 2007 08:01

Re: Who's logged on?
 
Zitat:

Zitat von Basilikum
dein Tool listet - egal welchen Server ich auswähle - immer exakt die selbe Liste... dies ist auch nicht sehr verwunderlich:
Delphi-Quellcode:
class function TUsers.GetAllUsers(Machine: WideString): TUsers;
var
[...]
  try
    err := NetWkstaUserEnum('', 1, bufPtr, MAX_PREFERRED_LENGTH, entriesread, totalentries, resumehandle);
    if err = NERR_SUCCESS then
Bei NetWkstaUserEnum müsste wohl als erster Parameter der Name des Ziel-Servers übergeben werden (Machine)...

BTW: Kann es Zufall sein, dass einige Funktionen in deiner Tools-Unit exakt identisch sind wie die gleichnamigen in der SysUtils ? :-)

Upps. :oops:

Behoben in Version 1.0.0.13.

@turboPASCAL: Ich glaube schon, da zumindest der Dialog zum Auswählen eines Computers der entsprechende Dialog ist. Probier es aus.

Matze 23. Jun 2007 08:25

Re: Who's logged on?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Matti hat's doch bereits ausprobiert, siehe dir mal seinen Anhang an.

Ich habe leider kein Netzwerk hier, verstehe aber nicht, wieso ein Benutzer doppelt angezeigt wird. Angemeldet bin ich momentan nur als "Eingeschränkt" (s. Anhang)

WinXP Pro SP2

Luckie 23. Jun 2007 08:30

Re: Who's logged on?
 
Mit dem swf kann ich nichts anfangen. ;)

Warum da einer doppelt angezeigt wird, kann ich dir auch nicht sagen.

Alter Mann 23. Jun 2007 08:49

Re: Who's logged on?
 
Moin Luckie,

der Benutzer mit dem Rechnernamen und $-Zeichen ist der Computer.
Ab Windows 2000 haben auch Computer ein Benutzer-Konto, mit allen Konsequenzen.

Gruss

Luckie 23. Jun 2007 08:51

Re: Who's logged on?
 
Ich habe mir schon so was gedacht. Aber Danke für die Bestätigung.

Alter Mann 23. Jun 2007 09:10

Re: Who's logged on?
 
Luckie,

wo kommt den die TWKSTA_USER_INFO_1 Struktur her?
Kenn ich so noch nicht, gibt es da eine Quelle?

Gruss

Luckie 23. Jun 2007 09:30

Re: Who's logged on?
 
PSDK oder MSDN: MSDN-Library durchsuchenWKSTA_USER_INFO_1.

turboPASCAL 23. Jun 2007 09:44

Re: Who's logged on?
 
Zitat:

Zitat von Luckie
Mit dem swf kann ich nichts anfangen. ;)

Einfach auf ein leeres Browserfenster (IE oder FF) ziehen. (Drag&Drop) :wink:
Vorrausetzung ist jedoch das ein Flash Player installiert ist. Dies sollte
bei den derzeit aktuellen Browsern der Fall sein.

Luckie 23. Jun 2007 10:38

Re: Who's logged on?
 
Neue Version: 1.0.0.19

- Es werden zusätzliche Informatinen zu den eingeloggten Benutzern angezeigt.
- Man kann die eigene Domain scannen.

Download im Anhang im ersten Posting.

@turboPASCAL: Was passiert, wenn du die Domain scannen lässt?

Alter Mann 23. Jun 2007 10:44

Re: Who's logged on?
 
MSDN! Hätte woll weiter runterscrollen sollen.

Unter Vista läuft es bei mir nicht, da ich das Netzwerk nicht durchsuchen kann.

Gruss

Luckie 23. Jun 2007 10:53

Re: Who's logged on?
 
Zitat:

Zitat von Alter Mann
Unter Vista läuft es bei mir nicht, da ich das Netzwerk nicht durchsuchen kann.

Kannst du das generell nicht oder geht das nur in meinem Programm nicht? Was passiert bei "Scan domain"?

Luckie 23. Jun 2007 11:36

Re: Who's logged on?
 
Aktuelle Version: 1.0.0.20

- Bugs beim Domain scannen behoben.
- Es werden jetzt auch Workstations mit gescannt.
- Windows XP Home geht mal wieder nicht. :(

Alter Mann 23. Jun 2007 16:14

Re: Who's logged on?
 
Hi

Scheint ein allgemeiner Fehler zu sein, bekomme im Explorer die Fehlermeldung:
'Die Liste der Arbeitsstationserver wird nicht gefunden'.


Gruss

Luckie 23. Jun 2007 16:19

Re: Who's logged on?
 
Zitat:

Zitat von Alter Mann
Scheint ein allgemeiner Fehler zu sein, bekomme im Explorer die Fehlermeldung:
'Die Liste der Arbeitsstationserver wird nicht gefunden'.

Das beruhigt mich ungemein. :mrgreen:

Luckie 24. Jun 2007 02:53

Re: Who's logged on?
 
Aktuelle Version: 1.0.0.27

- Oberfläche etwas anders gestalltet.
- Kleine Bugs in den LoggedOn Klassen gefixt.

Neotracer64 24. Jun 2007 03:16

Re: Who's logged on?
 
Bei ScanDomain kommt bei mir:

Zitat:

---------------------------
LoggedOn
---------------------------
Es ist folgender Fehler aufgetreten:



Fehlercode: 0

Fehlertext: Der angegebene Dienst ist kein installierter Dienst.


---------------------------
OK
---------------------------
Dann habe ich kurz überlegt und hatte den "Arbeitsstationsdienst" in Erinnerung, der vlt. gestartet sein muss, damit es klappt.
Nur das merkwürdige ist: Bei mir gibt es keinen Arbeitsstationsdienst. Habe ich das falsch in Erinnerung oder welchen Dienst muss ich starten? Obwohl...die Fehlermeldung sagt ja im Prinzip schon, dass der erforderliche Diesnt erst gar nicht installiert sei.
Sehr merkwürdig. :gruebel:
Ich habe Windowx XP Home SP2.

Luckie 24. Jun 2007 03:18

Re: Who's logged on?
 
Hm, kann sein, dass es auf XP Home nicht funktioniert, weil der nötige Dienst fehlt. XP Home kann man ja auch irgendwie nicht in eine Domain mit Domaincontroller integrieren. Eventuell gibt es da einen Zusammenhang. Kann das mit XP Home nochmal jemand nachprüfen bitte?

Und was passiert, wenn du einen Computer auswählst?

Neotracer64 24. Jun 2007 03:26

Re: Who's logged on?
 
Ich glaube irgendwas habe ich kaputt gemacht. ;)
Ich kann mich definitiv daran erinnern, dass ich mal einen "Arbeitsstationsdienst" gehabt habe.
Genauso verhält es sich mit dem Dienst "Computerbrowser"...spurlos verschwunden, deswegen finde ich vlt. keine Rechner im Netzwerk und mich selbst auch nicht.

Luckie 24. Jun 2007 03:28

Re: Who's logged on?
 
Wie gesagt, der Fehler in meinem Programm kann auch mit der eingeschränktn Netzwerkunterstützung von XP Home zu tun haben. Das müüste man naoch rausfinden.

Aber was passiert denn, wenn du deinen eigenen Rechner auswählst?

Neotracer64 24. Jun 2007 03:30

Re: Who's logged on?
 
Zitat:

Aber was passiert denn, wenn du deinen eigenen Rechner auswählst?
Wie gesagt, ich finde keinen einzigen Rechner, meinen eingeschlossen.

Luckie 24. Jun 2007 03:39

Re: Who's logged on?
 
Ach so, der Dialog findet auch keinen Rechner im Netzwerk. dann liegt es an Windows, denn der Dialog wird von Windows bereitgestellt.

Hansa 24. Jun 2007 03:55

Re: Who's logged on?
 
Zitat:

Zitat von Alter Mann
der Benutzer mit dem Rechnernamen und $-Zeichen ist der Computer.

Nene. Das macht Laufwerke eher "unsichtbar".

Aha, hier ists doch :

Windows - Hilfe sagt folgendes :

Zitat:

Freigegebene Ressourcennamen, die mit dem Zeichen $ enden, werden nicht angezeigt, wenn Sie den lokalen Computer von einem Remotecomputer aus durchsuchen.
Das müsste also schon berücksichtigt werden.

Mackhack 24. Jun 2007 05:45

Re: Who's logged on?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Luckie,...

interessantes Programm muss ich zugeben.

Hier der Screenshot.

Mir ist aufgefallen deine Controls sind nicht so sehr begeistert wenn ich das Programmfenster vergroessere.

Funzt aber einwandfrei soweit.

Alter Mann 24. Jun 2007 06:20

Re: Who's logged on?
 
Moin, Moin

@Hansa

Genau, die Windowshilfe hat Recht, wenn nach Freigaben gesucht würde bzw. das Programm diese Anzeigen sollte.

Soll es aber nicht, sondern den angemeldeten Benutzer und seinen Logonserver.

Gruss

Dezipaitor 24. Jun 2007 08:52

Re: Who's logged on?
 
in der aktuellen c't sind ein ganzer Haufen von Netzwerktools drauf, mit denen man sogar die installierte Software auf anderen Rechnern sehen kann.

@Luckie:
Man kann übrigens den Dialog in der Größe ändern, ohne dass der Inhalt angepasst würde. Ist aber wohl ein Schönheitsfehler :D

vepman 24. Jun 2007 11:38

Re: Who's logged on?
 
Zitat:

Zitat von Luckie
Wie gesagt, der Fehler in meinem Programm kann auch mit der eingeschränktn Netzwerkunterstützung von XP Home zu tun haben. Das müüste man naoch rausfinden.

Aber was passiert denn, wenn du deinen eigenen Rechner auswählst?

Geht auch bei XP Home ohne Probleme.

Gruss vepman

Luckie 24. Jun 2007 12:26

Re: Who's logged on?
 
Oh, an den Maximieren Button habe ich gedacht, aber nicht an den Dialog selber. Wird behoben. Allerdinsg bei dem XP Home Rechner hier im Netzwerk bekomme ich keine Benutzer angezeigt, wen ich von meinem Rechner aus "scanne".

Aktuelle Version: 1.0.0.29

- Neu: Domain kann über Dialog ausgewählt werden.

Mackhack 24. Jun 2007 18:26

Re: Who's logged on?
 
Zitat:

Zitat von Dezipaitor
@Luckie:
Man kann übrigens den Dialog in der Größe ändern, ohne dass der Inhalt angepasst würde. Ist aber wohl ein Schönheitsfehler :D

Sag sagte ich bereits oben :-)

Luckie 25. Jun 2007 00:37

Re: Who's logged on?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Aktuelle Version: 1.0.0.34

- Neu: Zusätzliche Informationen zu den Rechner (siehe Screenshots im Anhang).-+

Matze 25. Jun 2007 05:18

Re: Who's logged on?
 
Hi Michael,

wenn ich über "Scan domain" die Netzwerkumgebung selbst auswähle (also den obersten Eintrag) oder auch andere Einträge, die nicht sinnvoll sind, erscheint:

Code:
---------------------------
LoggedOn
---------------------------
Es ist folgender Fehler aufgetreten:

Fehlercode: 87
Fehlertext: Falscher Parameter.
---------------------------
OK  
---------------------------
und gleich danach

Code:
---------------------------
LoggedOn.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x00407690" verweist auf Speicher in "0x00000004". Der Vorgang

"read" konnte nicht auf dem Speicher durchgeführt werden.

Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK  Abbrechen  
---------------------------
und

Code:
---------------------------
Anwendungsfehler
---------------------------
Exception EAccessViolation in Modul LoggedOn.exe bei 00007690.

Zugriffsverletzung bei Adresse 00407690 in Modul 'LoggedOn.exe'. Lesen von Adresse 00000004.
---------------------------
OK  
---------------------------
Danach beendet sich dein Programm. Man sollte dort folglich nur das auswählen können, was Sinn ergibt. Ansonsten funktioniert's bei mir.

Luckie 25. Jun 2007 06:31

Re: Who's logged on?
 
Stimmt, aber auf den Dialog habe ich leider keinen Einfluss, der ist von Windows. Und ich wüsste auch nicht, wie man feststellen könnte, ob der Benutzer eine Domain ausgewählt hat oder nicht. :gruebel:

WS1976 25. Jun 2007 06:41

Re: Who's logged on?
 
Hallo Luckie,

mich würde interessieren warum deine Anwendungen immer "zu Fuß" erstellt sind. Warum proggst du fast immer non VCL und benutzt dann doch forms usw? Ist das nicht extrem umständlich?
Ich frage nur rein interessehalber.

PS: dein Tool ist geil! (wenn ichs jetzt noch die Source verstehen würde wärs noch geiler)

Grüsse
Rainer

Luckie 25. Jun 2007 09:05

Re: Who's logged on?
 
Wo verwende ich Formulare? Das sind Dialogressourcen.

Warum? Puh, also, ich habe natürlich mit der VCL angefangen, asber irgendwann kam ich an den Punkt, wo mir das Zusammenklicken von Anwendungen angefangen hat zu langweilen und ich wissen wollte, was eigentlich dahintersteckt. Da bin ich dann auf ein Tutorial von Olli gestossen, welches eine Einführung in die Programmierung ohne die VCL war. Und da habe ich angefangen zu verstehen, wie eigentlich Windows intern funktioniert. Und ich denke, das war eine wichtige und wertvolle Erkenntnis. Ich kann jeden nur empfehlen sich zumindest mal damit zu beschäftigen. Nun und dann hat es mich irgendwie gepackt. Das Ergebnis waren dann die Win32-API Tutorials für Delphi.

Und jetzt benutze ich sie eben noch, weil daraus ziemlich kleine ausführbare Dateien resultieren und es mir Spass macht. Natürlcih ist es etwas aufwendiger aber mitterleile bin ich zum einem so routiniert und ich habe mir Vorlagen erstellt, mit der Grundstruktur, so dass ich fast genauso schnell bin, als wenn ich die VCL benutzen würde. Natürlichmacht das nur Sinn für kleine Projekte mit einer etwas einfachheren Oberfläche. Programme mit komplexeren Oberflächen sind natürlich entsprechend aufwendiger. Zum anderen, denke ich, hat man auch größere Kontrolle über den Code. Manchaml hat man ja unerklärliche Bugs und weiß dann nicht, ob es an einem dselber leigt oder ob es die VCL ist.

uwewo 25. Jun 2007 09:30

Re: Who's logged on?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Luckie,

beim scannen unserer Domain habe ich nach 10 min abgebrochen, da nichts aufgelistet wurde.
In der Domain stecken ca. 90 Server.

Nach Auswahl eines Servers erhalte ich folgenden Fehler, siehe ScreenShot.

Ich hatte dann versucht den Source in der IDE zu testen, nach Auswahl des Servers kam dann eine Exception und mein Rechner war völlig tot. Musste ihn ausschalten :-(

Luckie 25. Jun 2007 09:39

Re: Who's logged on?
 
Ich teste ihn gerade in unserem Schulnetzwerk und hatte gerade auch schon eine Exception und das Programm ist abgestürzt, da muss ich zu Hause noch mal nacharbeiten.

Für eine Domain mit 52 Rechnern hat er hier 3:20 gebraucht. Aber darauf hab eich keinen Einfluss. Und abbrechen ist auch schlecht, weil es die API funktion ist, die nicht zurückkehrt. Ich könnte höchstens den Thread killen.

Luckie 25. Jun 2007 14:38

Re: Who's logged on?
 
Aktuelle Version: 1.0.0.37

- Genannte Fehler werden jetzt abgefangen und das Programm sollte nicht mehr abstürzen.
- Neu: Zeit läuft mit und wird zum Schluss angezeigt.

Mackhack 25. Jun 2007 15:24

Re: Who's logged on?
 
Luckie,

ist es moeglich dass du uns mal hier so eine Vorlagen-pas reinstellst fuer nonVCL da ich denke viele das gleiche Problem haben dass vieles am Code (Grundgeruest) immer gleich ist und man es eben wiederverwenden kann.

Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 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