AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

SetSystemTime unter Windows 7

Ein Thema von RonnyBausA · begonnen am 29. Nov 2011 · letzter Beitrag vom 9. Dez 2011
Antwort Antwort
RonnyBausA

Registriert seit: 29. Nov 2011
10 Beiträge
 
Delphi XE2 Professional
 
#1

AW: SetSystemTime unter Windows 7

  Alt 29. Nov 2011, 15:17
Vielen Dank für die schnelle Antwort.

...Dieser frägt auch deine DCF-Uhr ab...
Die DCF-Uhr hängt nicht am PC sondern an dem externen digitalen Steuerungssystem. Dieses übermittelt in regelmäßigen Abständen die Uhrzeitinformation per serieller Schnittstelle an meine kleine Taskbar-Anwendung. Die DCF-Uhr muss auch extern bleiben, da das digitale Steuerungssystem aus einem komplexen Verbund mehrerer Systeme besteht.

Ich muss also die Daten an den Dienst übergeben, damit der die Uhrzeit setzen kann.

viele Grüße
Ronny B.

Edit: Ich hab auch noch nie mit Pipes gearbeitet, aber funktioniert das den auch von einer Anwendung mit normalem Benutzeraccount zu einem Dienst mit lokalem Systemaccount?

Geändert von RonnyBausA (29. Nov 2011 um 15:19 Uhr) Grund: Text angefügt
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: SetSystemTime unter Windows 7

  Alt 29. Nov 2011, 15:26
Die DCF-Uhr hängt nicht am PC sondern an dem externen digitalen Steuerungssystem. Dieses übermittelt in regelmäßigen Abständen die Uhrzeitinformation per serieller Schnittstelle an meine kleine Taskbar-Anwendung. Die DCF-Uhr muss auch extern bleiben, da das digitale Steuerungssystem aus einem komplexen Verbund mehrerer Systeme besteht.
Auch der Dienst kann diese externen Info per Serielle Schnittstelle abfragen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
RonnyBausA

Registriert seit: 29. Nov 2011
10 Beiträge
 
Delphi XE2 Professional
 
#3

AW: SetSystemTime unter Windows 7

  Alt 29. Nov 2011, 15:37
Aber der Dienst und meine Taskbar Anwendung können ja nicht gleichzeitig auf ein und den selben COM-Port zugreifen. Und die Taskbar-Anwendung und deren benutzter COM-Port kann ich nicht schließen, da auf der seriellen Schnittstelle ein permanenter Datenverkehr mit dem digitalen System läuft. Die Uhrzeitinformation ist nicht das einzige, was über die serielle Schnittstelle kommt. Der Rest wird halt von den anderen Anwendungen verarbeitet. Die Taskbar-Anwendung händelt sozusagen das Datenprotokoll auf der seriellen Schnittstelle. Jedes fertige Datenpaket wird dann von dieser Taskbar-Anwendung aufbereitet und an die entsprechende und dafür zuständige Anwendung per Windows Message verteilt. Eine Unterbrechung des Datenverkehrs würde auch zu einer Fehlermeldung des digitalen Systems führen.

Viele Grüße
Ronny B.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: SetSystemTime unter Windows 7

  Alt 29. Nov 2011, 15:39
... Die Uhrzeitinformation ist nicht das einzige, was über die serielle Schnittstelle kommt. Der Rest wird halt von den anderen Anwendungen verarbeitet. ...
Ok. Dann brauchst du eine sonstige Interprozesskommunikation wie Named Pipes oder simple ein TCP/IP-Port über den du das schickst.
Wenn du hier im Forum nach "Named Pipe Dienst" suchst solltest du einiges an Beispiel(code) finden
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
RonnyBausA

Registriert seit: 29. Nov 2011
10 Beiträge
 
Delphi XE2 Professional
 
#5

AW: SetSystemTime unter Windows 7

  Alt 29. Nov 2011, 15:44
Danke erst einmal für die super schnelle Hilfe, das werde ich machen. Morgen bin ich nicht da, aber danach schaue ich mir das mal an und wenn noch fragen sind poste ich das.

Viele Grüße
Ronny B.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#6

AW: SetSystemTime unter Windows 7

  Alt 29. Nov 2011, 16:39
Nur mal so ins Blaue gedacht: Du könntest deine Anwendung als NTP-Server implementieren und die Windows-eigenen Internetzeit-Einstellungen auf den Localhost verbiegen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: SetSystemTime unter Windows 7

  Alt 29. Nov 2011, 18:23
Hallo,

den Datenaustausch habe ich bisher immer über Registry Einträge realisiert. Das Problem dabei ist, dass die Kommunikation über HKEY_CURRENT_USER erfolgen muss. Geht aber auch, ein Systemdienst kann Daten aus HKEY_CURRENT_USER lesen. Dazu muss die SID des Benutzers bekannt sein. Von einer Kommunikation über INI-Datei rate ich ab weil, je nach Intervall, zu viele Festplattenzugriffe das System ausbremsen könnten.

Beispiel:
Delphi-Quellcode:
procedure WriteUserRegistry;
var
  SID : PSID;
  strSID : PAnsiChar;
  s : String;
  err : DWORD;
  Registry : tRegistry;
begin
   err := GetAccountSid('', 'Benutzername', SID);
    if err = 0 then
    begin
     if ConvertSidToStringSid(SID, strSID) then
       s := strSID
     else
       s := SysErrorMessage(err);
    end
    else
     s := SysErrorMessage(err);

    Registry:=Tregistry.Create;
    Registry.Rootkey := HKEY_USERS;

      try
      Registry.OPENKEY(s + '\Software\MeineZeit', true);
      Registry.WriteString('Zeit','10:00:59');
      finally
      Registry.CloseKey;
      end;
end;
Lesen geht natürlich auch. Hab ich was vergessen ? Ach ja, dafür gibt es die Suchfunktion

kuba
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz