AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Computer Network Tool Ver.: 0.1 Alpha
Thema durchsuchen
Ansicht
Themen-Optionen

Computer Network Tool Ver.: 0.1 Alpha

Ein Thema von Larsi · begonnen am 3. Feb 2009 · letzter Beitrag vom 3. Feb 2009
Antwort Antwort
Larsi
Registriert seit: 10. Feb 2007
Hi,

vorab: Es handelt sich hier um keine finale Version. Ich bitte euch eifrig nach Fehlern etc. im Programm zu suchen.


Hiermit stell ich euch mein neustes Tool vor: Computer Network Tool in Version 0.1 Alpha. Es kann Computer im Netzwerk anzeigen und bestimmte Aktionen mit diesen ausführen. Ich weiß, dass es solche Tools schon zuhauft gibt aber da ich noch nie so richtig was mit Netzwerk und Delphi gemacht habe, dachte ich, das sei eine gute Übung.

Alle Funktionen im Überblick:
- Anzeige von allen Computern im Netzwerk samt Ip und Uptime
- Herunterfahren/Neustarten wahlweise mit Countdown, Nachricht und gewaltsamen Vorgang (Mit Abbrechen Funktion)
- Anpingen mit ein paar Einstellungen (Anzahl, Packetgröße, Timeout) -> Admin Rechte erforderlich
- Nachrichten senden (Über Nachrichtendienst, dieser muss aktiviert sein)
- Prozesse anzeigen
- Windows Firewall deaktivieren
- Ordner freigeben wahlweise mit Passwort oder Schreibschutz
- Informationen über eigenen Pc (Lan Ip, Internet Ip, Mac Adresse, Netzwerk/Internet- Verbindung)
- Eigenen Computernamen ändern
- Druck Funktion
- Html Exportier Funktion

Vielleicht gefällt euch das Programm ja. Guckts euch einfach an. Wenn Ihr nur einen Computer habt wird dieser in der Liste der gefundenen Rechner angezeigt, sodass Ihr bei euch selber die Funktionen testen könnt. Wieso die Exe schonwieder so groß ist weiß ich nicht. Vista?



Update:
- Hilfe Datei erstellt
- Uptime wird richtig angezeigt
- Zugriffsverletzung wenn man auf "Prozesse anzeigen" klickt sollte nicht mehr kommen
Angehängte Dateien
Dateityp: rar computer_ver._0.1_alpha_137.rar (766,9 KB, 83x aufgerufen)
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ

Geändert von Larsi (14. Nov 2019 um 11:19 Uhr)
 
Darkface

 
Delphi XE Professional
 
#2
  Alt 3. Feb 2009, 11:28
Zu erst - Nice!

Schönes Tool aber ich habe bei mir doch gleich den ersten Bug gefunden.
OS: XP

Screen liegt bei. Die Uptime stimmt nicht .
Miniaturansicht angehängter Grafiken
bug_155.png  
Alexander
  Mit Zitat antworten Zitat
Larsi

 
Delphi 2007 Professional
 
#3
  Alt 3. Feb 2009, 11:36
Zitat von Darkface:
Zu erst - Nice!
Danke
Zitat:
Screen liegt bei. Die Uptime stimmt nicht Wink.
Das Problem habe ich auch. Ich dachte, das liegt vielleicht an Vista aber anscheinend ist die Funktion, die ich da aufrufe fehlerhaft. Guck ich mir nochmal an.
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#4
  Alt 3. Feb 2009, 12:33
Hallo Lars,

ich habe mir Dein Programm angeschaut und ein paar Dinge gefunden, die mich stören :
  • Unter dem Menüpunkt Hilfe stelle ich mir ein Fenster vor, welches mir eine Hilfe zum Programm anzeigt und nicht das ein E-Mail Fenster vom E-Mail Standardprogramm aufgeht und erst dort seine Frage reinstellen muss.
  • Bei Informationen, musste ich erst auf Aktualisieren klicken, damit ich die Daten bekomme.
  • Bei Prozessen bekomme ich eine Zugriffsverletzung
  • Windows-Firewall deaktivieren funktioniert nicht
  • Bei mir werden keine Rechner im Netzwerk angezeigt.
  • Einen Button zum aktualisieren der Liste.
  • Beim Auswählen des Menüpunktes "Suchen" stürzt Dein Programm ab. Es kommt keine Fehlermeldung und kann nur über den Taskmanager beendet werden.

Ansonsten ist die Idee nicht schlecht. Alles wurde unter Windows VISTA x64 SP1 getestet.
Rolf Warnecke
  Mit Zitat antworten Zitat
Larsi

 
Delphi 2007 Professional
 
#5
  Alt 3. Feb 2009, 12:59
Also wenn du das Programm startest werden auch keine Computer angezeigt. Du musst dazu auf Suchen drücken. Beim ersten Scan kann die Suche 1 Minute dauern, in der Zeit solltest du das Programm in Ruhe lasssen. Das mit der Hilfe seh ich ein, änder ich in der nächsten Version. Das mit dem aktualisieren klicken ist gewollt da das "holen" der Internet Ip ein bisschen Zeit braucht und ich so eine Verzögerung beim öffnen des Fensters nicth wollte. Du musst auch erst einen Computer auswählen aus der Liste aber eigentlich sollte eine Meldung kommen das du einen Computer makieren sollst. Komisch. Steht im Try Except Block drinne. Das mit der Firewall deaktivieren funktioniert laut Tip im Internet nur mit Xp, solle ich vielleicht mal dazuschreiben.

Also wenn du es nochmal testen willst warte ein bisschen nach dem du auf Suchen geklictk hast.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#6
  Alt 3. Feb 2009, 13:00
Hier mal eine Sache, die mir aufgefallen ist: Guck mal auf die IP Adresse. Es handelt sich um die IP Adresse meines Hamachi Netzwerk Adapters, den ich an die erste Stelle meiner LAN Verbindungen verschoben hatte.

Scheinbar scannt das Programm nur den jeweils ersten Adapter und findet daher natürlich nicht die wirklichen Rechner im Netzwerk.
Miniaturansicht angehängter Grafiken
tools_101.png  
  Mit Zitat antworten Zitat
Larsi

 
Delphi 2007 Professional
 
#7
  Alt 3. Feb 2009, 13:28
Also der Code aus dem SwissDelphiCenter den ich verwende sieht so aus:
Delphi-Quellcode:
type
  PNetResourceArray = ^TNetResourceArray;
  TNetResourceArray = array[0..100] of TNetResource;

function CreateNetResourceList(ResourceType: DWord;
                              NetResource: PNetResource;
                              out Entries: DWord;
                              out List: PNetResourceArray): Boolean;
var
  EnumHandle: THandle;
  BufSize: DWord;
  Res: DWord;
begin
  Result := False;
  List := Nil;
  Entries := 0;
  if WNetOpenEnum(RESOURCE_GLOBALNET,
                  ResourceType,
                  0,
                  NetResource,
                  EnumHandle) = NO_ERROR then begin
    try
      BufSize := $4000; // 16 kByte
      GetMem(List, BufSize);
      try
        repeat
          Entries := DWord(-1);
          FillChar(List^, BufSize, 0);
          Res := WNetEnumResource(EnumHandle, Entries, List, BufSize);
          if Res = ERROR_MORE_DATA then
          begin
            ReAllocMem(List, BufSize);
          end;
        until Res <> ERROR_MORE_DATA;

        Result := Res = NO_ERROR;
        if not Result then
        begin
          FreeMem(List);
          List := Nil;
          Entries := 0;
        end;
      except
        FreeMem(List);
        raise;
      end;
    finally
      WNetCloseEnum(EnumHandle);
    end;
  end;
end;

procedure ScanNetworkResources(ResourceType, DisplayType: DWord; List: TStrings);

procedure ScanLevel(NetResource: PNetResource);
var
  Entries: DWord;
  NetResourceList: PNetResourceArray;
  i: Integer;
begin
  if CreateNetResourceList(ResourceType, NetResource, Entries, NetResourceList) then try
    for i := 0 to Integer(Entries) - 1 do
    begin
      if (DisplayType = RESOURCEDISPLAYTYPE_GENERIC) or
        (NetResourceList[i].dwDisplayType = DisplayType) then begin
        List.AddObject(NetResourceList[i].lpRemoteName,
                      Pointer(NetResourceList[i].dwDisplayType));
      end;
      if (NetResourceList[i].dwUsage and RESOURCEUSAGE_CONTAINER) <> 0 then
        ScanLevel(@NetResourceList[i]);
    end;
  finally
    FreeMem(NetResourceList);
  end;
end;

begin
  ScanLevel(Nil);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, ListBox1.Items);
end;
  Mit Zitat antworten Zitat
Larsi

 
Delphi 2007 Professional
 
#8
  Alt 3. Feb 2009, 15:16
Update:
- Hilfe Datei erstellt
- Uptime wird richtig angezeigt
- Zugriffsverletzung wenn man auf "Prozesse anzeigen" klickt sollte nicht mehr kommen
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#9
  Alt 3. Feb 2009, 15:42
Zitat von Larsi:
Also wenn du das Programm startest werden auch keine Computer angezeigt. Du musst dazu auf Suchen drücken. Beim ersten Scan kann die Suche 1 Minute dauern, in der Zeit solltest du das Programm in Ruhe lasssen.
Da wäre es sehr hilfreich, wenn man einen Fortschritt sehen würde.

Zitat von Larsi:
Das mit dem aktualisieren klicken ist gewollt da das "holen" der Internet Ip ein bisschen Zeit braucht und ich so eine Verzögerung beim öffnen des Fensters nicth wollte.
Dieses könnte man in einen Thread auslagern. Beim Öffnen des Fensters wird an den einzelnen Positionen zum Beispiel "Daten werden ermittelt..." angezeigt. Wenn in dem Thread dann die Daten ermittelt sind, werden die Daten an der dazugehörigen Position angezeigt. Dann ist mit noch aufgefallen, dass ich nur eine lokale IP-Adresse angezeigt bekomme. Ich habe aber drei Netzwerkadapter. Was ist mit den restlichen ?

Ich habe das Programm jetzt nochmals suchen lassen. Nur leider bricht es nach dem ersten Rechner ab gibt mir dann die Fehlermeldung aus:
---------------------------
Computer Network Tool
---------------------------
Listenindex überschreitet das Maximum (0)
---------------------------
OK
---------------------------

Irgendwie sehe ich da noch kein richtiges Konzept hinter dem Programm. Ich vermisse die Struktur, das einfache Bedienen und ich wünsche mir mehr Informationen, wenn das Programm etwas tut. Du lässt den Benutzer an vielen Stellen im dunkeln stehen.

Edit: Meine MAC-Adresse mit der IP-Adresse stimmen nicht über ein. Die IP-Adresse wird vom Ethernetadapter LAN-Verbindung angezeigt, welches auch richtig ist. Nur die MAC-Adresse wird vom Ethernetadapter VMware Network Adapter VMnet1 angezeigt, welches falsch ist.
Rolf Warnecke
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

 
Delphi 2006 Architect
 
#10
  Alt 3. Feb 2009, 16:16
Auch nach 10 Minuten warten nachdem ich auf Datei/Suchen geklickt habe passiert nichts! Auch alles andere funktioniert nicht. Ich bekomme Socket Error Timed out, kann nichts einstellen. Zur Info... WinXP SP3 English!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.
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