Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TimeWizard - Ein Zeitaktualisierungs-Tool (https://www.delphipraxis.net/72516-timewizard-ein-zeitaktualisierungs-tool.html)

Stefan Hueg 2. Jul 2006 00:35


TimeWizard - Ein Zeitaktualisierungs-Tool
 
Liste der Anhänge anzeigen (Anzahl: 2)
Nun, nach etwa einem Monat Entwicklungszeit, bringe ich Version 0.8 Beta meines Zeitaktualisierungs-Tools TimeWizard heraus.

Es bietet die Möglichkeit die Zeit über das SNTP Protokoll zu aktualisieren. Zusätzlich beinhaltet es einige Service-Funktionen wie einen Zeitserver-Manager, div. Import und Exportmöglichkeiten.

Hier einmal die Features im Überblick:
-Aktualisierung der Uhrzeit über das SNTP Protokoll
-Aktualisierung der Uhrzeit über das HTTP Protokoll mit Proxy-Unterstützung (in Netzwerken wo viele Ports gesperrt sind)
-Zeitserver-Manager
-Zeitserver importieren (.csv, .txt)
-Zeitserver exportieren (.csv, .txt)
-Schnellsten Zeitserver herausfinden
-Mehrsprachigkeit (bisher nur Deutsch und Englisch)

etc.

Was noch geplant ist:
-Autostartfunktion

So nun testet mal drauf los, und nehmt das Proggie ruhig auseinander, bin gespannt auf eure Reaktionen und Vorschläge.

Gruß,

Stefan

PS: Die Readme-Dateien wurden noch nicht überarbeitet ;)

Stefan Hueg 2. Jul 2006 16:29

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Schade, noch keiner hat das Programm getestet :(
Giiiib Response ^^

Basilikum 2. Jul 2006 16:49

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Zitat:

Zitat von Stefan Hueg
Es bietet die Möglichkeit die Zeit über das SNMP Protokoll zu aktualisieren.

ich denke, du meinst hier das Simple Network Time Protocol (SNTP), nicht Simple Network Management Protocol (SNMP), oder ? :-)

Stefan Hueg 2. Jul 2006 16:51

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Achja danke, Freudscher Verschreiber ^^

jmit 2. Jul 2006 16:59

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Warum benötigt Dein Programm Admin-Rechte zum Aktualisieren der Uhrzeit?

Gruß Jörg

Stefan Hueg 2. Jul 2006 17:07

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Weil die Routine zum Aktualisieren sonst fehl schlägt (SetSystemTime).

jmit 2. Jul 2006 17:14

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Benötigt diese Routine SetSystemTime wirklich Admin-Rechte?
Wenn ja, ist ja irgendwie blöd. :gruebel:
Die Uhrzeit kann doch unter Windows auch mit Hauptbenutzergruppenrechten geändert werden.

Stefan Hueg 2. Jul 2006 17:18

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Habe es unter Windows Vista getestet, es funktioniert mit den lokalen Benutzerrechten NICHT. Erst wenn man den Haken bei "Als Administrator ausführen" an macht, funktioniert die Routine.

Basilikum 2. Jul 2006 18:35

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Zitat:

Zitat von jmit
Benötigt diese Routine SetSystemTime wirklich Admin-Rechte?
Wenn ja, ist ja irgendwie blöd. :gruebel:
Die Uhrzeit kann doch unter Windows auch mit Hauptbenutzergruppenrechten geändert werden.

SetSystemTime benötigt ein spezielles Privileg (SE_SYSTEMTIME_NAME), welches defaultmässig nur Admins und Hauptbenutzer haben...

jmit 2. Jul 2006 18:39

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Zitat:

Zitat von Basilikum
Zitat:

Zitat von jmit
Benötigt diese Routine SetSystemTime wirklich Admin-Rechte?
Wenn ja, ist ja irgendwie blöd. :gruebel:
Die Uhrzeit kann doch unter Windows auch mit Hauptbenutzergruppenrechten geändert werden.

SetSystemTime benötigt ein spezielles Privileg (SE_SYSTEMTIME_NAME), welches defaultmässig nur Admins und Hauptbenutzer haben...

Dann müsste ich ja mit meinem Account (Mitglied der Gruppe Hauptbenutzer) die Uhrzeit aktualisieren können.
Das Programm verlangt aber Admin-Rechte.

Gruß Jörg

Stefan Hueg 2. Jul 2006 18:47

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Ok danke für den Hinweis, dann muss ich das nur noch anpassen.

Hier der Code, und ich weiss jetzt nicht wo ich das ändern kann ^^

Delphi-Quellcode:
function IsAdmin: Boolean;
var
  hAccessToken: THandle;
  ptgGroups: PTokenGroups;
  dwInfoBufferSize: DWORD;
  psidAdministrators: PSID;
  x: Integer;
  bSuccess: BOOL;
begin
  Result  := False;
  bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True,
    hAccessToken);
  if not bSuccess then
  begin
    if GetLastError = ERROR_NO_TOKEN then
      bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY,
        hAccessToken);
  end;
  if bSuccess then
  begin
    GetMem(ptgGroups, 1024);
    bSuccess := GetTokenInformation(hAccessToken, TokenGroups,
      ptgGroups, 1024, dwInfoBufferSize);
    CloseHandle(hAccessToken);
    if bSuccess then
    begin
      AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2,
        SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS,
        0, 0, 0, 0, 0, 0, psidAdministrators);
      {$R-}
      for x := 0 to ptgGroups.GroupCount - 1 do
      if (SE_GROUP_ENABLED = (ptgGroups.Groups[x].Attributes and SE_GROUP_ENABLED)) and
      EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid) then
        begin
          Result := True;
          Break;
        end;
      {$R+}
      FreeSid(psidAdministrators);
    end;
    FreeMem(ptgGroups);
  end;
end;

Basilikum 2. Jul 2006 18:56

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Zitat:

Zitat von Stefan Hueg
Ok danke für den Hinweis, dann muss ich das nur noch anpassen.

Hier der Code, und ich weiss jetzt nicht wo ich das ändern kann ^^

weshalb wertest du nicht einfach nach dem Aufruf von SetSystemTime den Error-Code (GetLastError) aus, anstelle lange zu prüfen, ob der Benutzer die Zeit setzen könnte ?

atreju2oo0 2. Jul 2006 19:19

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Zitat:

Zitat von Stefan Hueg
-Aktualisierung der Uhrzeit über das HTTP Protokoll mit Proxy-Unterstützung (in Netzwerken wo viele Ports gesperrt sind)

Und wo kann ich das Einstellen?

Stefan Hueg 2. Jul 2006 19:22

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
@Basilikom: Weil die Api Funktion keinen Error Code sondern nur True oder False zurück gibt (Erfolg oder Misserfolg).

@atreju2oo0: "Datei\HTTP-Server Aktualisierung" bzw. "File\HTTP-Server update"

Stefan Hueg 2. Jul 2006 19:38

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
@Basilikum: Habe es eben gerade mal geprüft. Sowohl im Erfolgs- als auch im Fehlerfall wird GetLastError 0 zurück. Damit funktioniert es also nicht.

xZise 2. Jul 2006 19:56

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Nettes Programm. Eine Frage: Kann das Programm automatisch aktuallsiseren? Also z.B. alle X-Tage ?

Und dann auch ein schönheits tipp (ich fänds net):
Im Log erscheint:
Code:
[ ] Löse auf clock.psu.edu
Wenns klappt dann löscht du die Zeile (bzw änderst sie):
Code:
[X] Löse auf clock.psu.edu (128.118.25.3)
Wenns dann nicht klappt statt [X] einfach ein [-] ?

PS: Hast du da irgendwie ein Shortcut, der das Fenster durchsichtig macht, aber es dann sozusagen als Bild draufklatscht? Oder habe ich eine neue Funktion meiner Graka/meines Windows entdeckt :mrgreen: Irgendwie mit Alt Gr und da was bei der neun ^^
xZise hat folgendes hinzugefügt:
Ah ^^ Ich habs xP Mein Firefox ist leicht durchsichtig xP jetzt müsst ich nur noch dahinterkommen, es wieder umzustellen ^^

xZise hat folgendes hinzugefügt:
So... Wieder umgestellt xP Lag an mein Programm, dass aus XP Vista macht (vom Style her gesehen) und da hat man dann auch so eine lustiche Funktio mit der man Fenster durchsichtig machen kann ^^


PPS: Mach doch Noch diese BOX in der man den Hostname wählt im XP-Style ?!

Stefan Hueg 2. Jul 2006 19:59

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
@xZise: Danke für die Hinweise erstmal. Deinen ersten Vorschlag werde ich beherzigen. Zur BOX: Wenn du mir sagst welche Komponente du meinst oder kennst? ;)

himitsu 2. Jul 2006 20:00

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Selbst TRUE und FALSE reicht doch auch aus?

Entweder die Zeit konnte geändert werden, oder eben nut und dann muß ja was nicht stimmen.
Und wenn also die übergebene Zeit OK war, dann lag es wohl an fehlenden Rechten.

xZise 2. Jul 2006 20:02

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
[OT]o.O xZise ist doch kein D-Zug ^^ xP[/OT]

Also ich meine diese Combobox (wenn ich es richtig in er innerung habe, wo man die IP oder den Hostname wählt. (Aber irgendwie habe ich das gefühl, dass du nicht das meinst xP)

xZise hat folgendes hinzugefügt:
Noch eine Frage: Was zeigt mir dieses Lustige Lämpchen vor der ComboBox?

Stefan Hueg 2. Jul 2006 20:03

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Deswegen mache ich es ja so: Überprüfung ob die entsprechenden Rechte da sind (evtl. kann jemand den Code editieren dass er auch nach Hauptbenutzern sucht), dann wird geprüft ob das Aktualisieren erfolgreich war und ggf. wird eine Fehlermeldung ausgegeben.

Nur wenn ich schon im Vornerein weiss, welche Fehler entstehen könnten (beispielsweise beim Schreiben in Dateien -> Dateiattribute) oder ob eine Datei zum Lesen überhaupt vorhanden ist (->FileExists) kann ich sie auch vorher vorbeugen.

@xZise: Nein ich mein ob du einen Ersatz vorschlagen kannst :)

xZise 2. Jul 2006 20:05

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
XPMan in die Uses? Ich meine du hast ja D2006 oder? Da dürfte das doch kein Problem sein?!

mschaefer 2. Jul 2006 20:05

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Also mir gefällt das Programm. Damit kan man sich sogar die Ersatz-CMos-Batterie sparen.

Wenn ein Autostart kommt, sollte eine Zeitspanne bis zur Serverabfrage vorgegeben werden, damit sich Netzwerkverbindungen (auch WLAN) aufbauen können und nach Aktualsierung sollte es sich dann beenden...


// Martin

Stefan Hueg 2. Jul 2006 20:07

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
@xZise: Ach so meinst du das, bewirkt die Unit dass der Style von WinXP auf das Programm übertragen wird?

xZise 2. Jul 2006 20:12

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Jap... ;)

Und dann möchte ich mich dochmal über die Süprachen aufregen xP ^^
Ich mein, wenn man die Sprache wählt, dann sollte die Sprache in der Landesspreche sein. (omfg ^^)

Also das wenn du auf Englsich gestellt hat, das da Deutsch, English steht ^^ Ich mein, ansonsten müsse man kompliziert umdenken xP

(Sry nicht so ernst nehmen, aber das ist einfach nur "Blödsinn" (Nichts gegen dich/dein Programm) ;) Sry)

Aber ansonsten solltest du noch einbauen:
- Tray
- automatische Aktuallisierung

Und eine Frage:
- Was bringt diese Lampe da? Die entweder rot/grün leutet? Also anzeigen, ob er pingen konnte, tut er nicht :?

Stefan Hueg 2. Jul 2006 20:14

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Ok danke ist notiert mit den Sprachen ^^ Kein Problem

Ein Tray - Hm, das ist so eine Sache, bin mir nicht so sicher ob das überhaupt gebraucht wird. Ich mein, wann aktualisiert man schon seine Zeit? Doch max. einmal pro Systemstart oder?

Autostart ist geplant.

Lampe rot - Irgendein Fehler aufgetreten bei der Überprüfung
Lampe grün - Alles ok!

xZise 2. Jul 2006 20:16

Re: TimeWizard - Ein Zeitaktualisierungs-Tool
 
Also bei mir ist sie bei der Überprüfung rot. Also sozusagen:
Rot -> Arbeitet
Grün -> Bereit


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