Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Dialog "Zeitzone ändern" nachbauen (https://www.delphipraxis.net/185823-dialog-zeitzone-aendern-nachbauen.html)

TUX_der_Pinguin 9. Jul 2015 10:52

Dialog "Zeitzone ändern" nachbauen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo DPler,

ich würde gern in meinem Programm die Option anbieten die Zeitzone des Systems zu ändern, ähnlich dem Windows Dialog.

Anhang 43512


Mithilfe der Registry konnte ich mir schon eine ComboBox bauen die die Liste der Zeitzonen enthält, zumindest unter Windows XP hat dies funktioniert für Windows 7 muss ich da wohl noch was anpassen.

Aber zu meinem eigentlichen Problem, wie bekomme ich raus welche Zeitzone (also aus der Liste) zur Zeit eingestellt ist?

Mit GetTimeZoneInformation() z.B. erhalte ich nur "Mitteleuropäische Zeit" und nicht "(UTC+01:00) Amsterdam, Berlin, Bern, Rom, Stockholm, Wien" wie komme ich also an letzteres ran? Und wie ändere ich dann die Zeitzone wenn ich eine andere Zone aus der Liste auswähle?

Ich bin gerade etwas ratlos. :gruebel:

Sir Rufo 9. Jul 2015 10:57

AW: Dialog "Zeitzone ändern" nachbauen
 
Hmmm, es gibt den Dialog doch schon ... einfach in die Systemeinstellung und die Zeitzone ändern, schon wird die Zeitzone des Systems geändert.

Warum willst du einen Dialog nachbauen, obwohl es den schon gibt?

Oder kann es evtl. sein, dass du die Zeitzone eigentlich nur für deine Anwendung ändern müsstest (wenn du nur wüsstest wie)?

TUX_der_Pinguin 9. Jul 2015 11:04

AW: Dialog "Zeitzone ändern" nachbauen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1308191)
Hmmm, es gibt den Dialog doch schon ... einfach in die Systemeinstellung und die Zeitzone ändern, schon wird die Zeitzone des Systems geändert.

Warum willst du einen Dialog nachbauen, obwohl es den schon gibt?

Oder kann es evtl. sein, dass du die Zeitzone eigentlich nur für deine Anwendung ändern müsstest (wenn du nur wüsstest wie)?

Es geht um eine Art Kiosk Anwendung, sprich der Anwender kommt an den Windows Dialog gar nicht ran. ;-)
Der Anwender soll aber ein paar Optionen doch ändern können, Datum und Uhrzeit. Da habe ich gedacht warum
nicht auch die Zeitzone, wichtig wäre das nicht ist mehr interessehalber ob es geht.

hathor 9. Jul 2015 12:15

AW: Dialog "Zeitzone ändern" nachbauen
 
Delphi-Quellcode:
uses Shellapi;
...
ShellExecute(Handle, 'open', 'control', 'date/time', nil, SW_SHOW);
...
Oder so - tut das Gleiche:
Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
var FN, strParams : String;
begin
//rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,/
 strParams:= 'shell32.dll,Control_RunDLL timedate.cpl,,/';
 FN:='rundll32.exe';
ShellExecute(Application.Handle,NIL,PWChar(FN), PWChar(strParams),NIL, SW_Normal);
end;

TUX_der_Pinguin 9. Jul 2015 14:17

AW: Dialog "Zeitzone ändern" nachbauen
 
Zitat:

Zitat von hathor (Beitrag 1308200)
Delphi-Quellcode:
uses Shellapi;
...
ShellExecute(Handle, 'open', 'control', 'date/time', nil, SW_SHOW);
...
Oder so - tut das Gleiche:
Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
var FN, strParams : String;
begin
//rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,/
 strParams:= 'shell32.dll,Control_RunDLL timedate.cpl,,/';
 FN:='rundll32.exe';
ShellExecute(Application.Handle,NIL,PWChar(FN), PWChar(strParams),NIL, SW_Normal);
end;

Daran hatte ich noch nicht gedacht. Ich würde aber dennoch gerne wissen wie man die aktuelle Zeitzone in der Liste auswählt und wie man dann die Zeitzone ggf. ändern kann.

markus5766h 9. Jul 2015 14:42

AW: Dialog "Zeitzone ändern" nachbauen
 
Moin,

such mal nach
"GetTimeZoneInformation" und "SetTimeZoneInformation" . . . da sollte sich noch was finden lassen.

TUX_der_Pinguin 9. Jul 2015 15:10

AW: Dialog "Zeitzone ändern" nachbauen
 
Zitat:

Zitat von markus5766h (Beitrag 1308223)
Moin,

such mal nach
"GetTimeZoneInformation" und "SetTimeZoneInformation" . . . da sollte sich noch was finden lassen.

Naja nicht so wirklich den GetTimeZoneInformation liefert, wie ich eingangs geschrieben habe, nur eine unspezifische Antwort ( "Mitteleuropäische Zeit" ). In der Liste stehen aber detaillierte Informationen wie z.b. "(UTC+01:00) Amsterdam, Berlin, Bern, Rom, Stockholm, Wien". Wie sollte ich also mit GetTimeZoneInformation() entscheiden ob "UTC+1 Amsterdam, Berlin" oder "UTC+1 Sarajevo, Skopje" eingestellt ist. Klar die Zeitzone ist schon die gleiche aber ich will ja die Auswahl anbieten die auch der Standard Windows Dialog bietet.

Luckie 9. Jul 2015 15:36

AW: Dialog "Zeitzone ändern" nachbauen
 
Die erweiterten Informationen stehen in der Registry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones

Die Frage ist jetzt, ob es dafür eine API Funktion gibt oder ob man die selbst zuordnen und auslesen muss.

TUX_der_Pinguin 9. Jul 2015 15:45

AW: Dialog "Zeitzone ändern" nachbauen
 
Zitat:

Zitat von Luckie (Beitrag 1308235)
Die erweiterten Informationen stehen in der Registry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones

Die Frage ist jetzt, ob es dafür eine API Funktion gibt oder ob man die selbst zuordnen und auslesen muss.

Genau daher kommen die Informationen zum erstellen einer Liste aller im System verfügbaren Zeitzonen, wie sie auch im Standard Windows Dialog aufgelistet werden.

Die Frage ist eher steht da auch irgendwo welche Zeitzone zur Zeit aktuell eingestellt ist und lässt sich das dort ändern und wenn ja wie? Ich denke einfach etwas in der Registry ändern heißt ja nicht unbedingt das das System die Änderung auch mitbekommt und sofort anwendet. Fragen über Fragen. ;-)

Luckie 9. Jul 2015 15:49

AW: Dialog "Zeitzone ändern" nachbauen
 
Was willst du den jetzt machen? Ich dachte dir geht es darum die erweiterten Informationen anzuzeigen? Das diese Information nur zum Lesen und Anzeigen da sind sollte wohl klar sein. Ändern der Zeitzone geht mit SetTimeZone....irgendwas.


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