AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows Gebietseinstellungen

Ein Thema von Satyr · begonnen am 8. Nov 2013 · letzter Beitrag vom 8. Nov 2013
Antwort Antwort
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#1

Windows Gebietseinstellungen

  Alt 8. Nov 2013, 14:29
Huhu,

gibt es mit Delphi die Möglichkeit auf die Windows Gebietseinstellungen zuzugreifen?
Konkret: Gucken welches Gebiet eingestellt ist, eventuell anderes Gebiet einstellen oder neues Gebiet installieren wenn nicht vorhanden?

Ich schreibe grade einen Launcher für ein älteres Programm aus den USA. Dieses Programm verlangt englische Gebietseinstellungen. Ich möchte das der Launcher das umstellt, programm startet und bei beenden des Programms wieder die Einstellungen zurückstellt. Seht Ihr da eine Chance?

Gruß,
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

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

AW: Windows Gebietseinstellungen

  Alt 8. Nov 2013, 14:38
Soweit ich weiß, werden die Einstellungen per User gesetzt. Du kannst also einen neuen User anlegen, die Einstellungen anpassen und das Programm unter diesem User-Account starten. Es gibt da auch irgendwo sowas wie RunAsUser - musste mal googlen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Windows Gebietseinstellungen

  Alt 8. Nov 2013, 14:41
Danke für den Anhaltspunkt, ich fand beim Googeln leider nichts und wusste auch nicht wonach ich genau suchen muss.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Windows Gebietseinstellungen

  Alt 8. Nov 2013, 15:28
Danke für den Anhaltspunkt, ich fand beim Googeln leider nichts und wusste auch nicht wonach ich genau suchen muss.
Siehe hier:
http://bit.ly/17cM86S
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#5

AW: Windows Gebietseinstellungen

  Alt 8. Nov 2013, 16:15
Funktion SetLocaleInfo

Delphi-Quellcode:
function SetLocaleInfo(Locale: LCID; LCType: LCTYPE; lpLCData: PChar): Boolean;

//these are the LCTYPE constants:
LOCALE_ICALENDARTYPE
LOCALE_SDATE
LOCALE_ICURRDIGITS
LOCALE_SDECIMAL
LOCALE_ICURRENCY
LOCALE_SGROUPING
LOCALE_IDIGITS
LOCALE_SLIST
LOCALE_IFIRSTDAYOFWEEK
LOCALE_SLONGDATE
LOCALE_IFIRSTWEEKOFYEAR
LOCALE_SMONDECIMALSEP
LOCALE_ILZERO
LOCALE_SMONGROUPING
LOCALE_IMEASURE
LOCALE_SMONTHOUSANDSEP
LOCALE_INEGCURR
LOCALE_SNEGATIVESIGN
LOCALE_INEGNUMBER
LOCALE_SPOSITIVESIGN
LOCALE_ITIME
LOCALE_SSHORTDATE
LOCALE_S1159
LOCALE_STHOUSAND
LOCALE_S2359
LOCALE_STIME
LOCALE_SCURRENCY
LOCALE_STIMEFORMAT


//Usage:
SetLocaleInfo(GetSystemDefaultLCID, LOCALE_SDATE, '.');

//SetLocalInfo changes your whole computers settings.
To change setting for application only try:

SysUtils.DateSeparator := '.' ;

These are the SysUtils constants:
Delphi-Quellcode:
CurrencyString: string;
CurrencyFormat: Byte;
NegCurrFormat: Byte;
ThousandSeparator: Char;
DecimalSeparator: Char;
CurrencyDecimals: Byte;
DateSeparator: Char;
ShortDateFormat: string;
LongDateFormat: string;
TimeSeparator: Char;
TimeAMString: string;
TimePMString: string;
ShortTimeFormat: string;
LongTimeFormat: string;
ShortMonthNames: array[1..12] of string;
LongMonthNames: array[1..12] of string;
ShortDayNames: array[1..7] of string;
LongDayNames: array[1..7] of string;
SysLocale: TSysLocale;
EraNames: array[1..7] of string;
EraYearOffsets: array[1..7] of Integer;
TwoDigitYearCenturyWindow: Word = 50;
ListSeparator: Char;
oder:

Regional Settings (INTL.CPL)
---------------------------------
Regional Settings Properties (Regional Settings):
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,0
Regional Settings Properties (Number):
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,1
Regional Settings Properties (Currency):
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,2
Regional Settings Properties (Time):
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3
Regional Settings Properties (Date):
rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4

You can call the Region Options Applet:
{This will open the Currency Tab of the Region Options Applet}
Delphi-Quellcode:
ShellExecute(Handle,
PChar('open'),
PChar('rundll32.exe'),
PChar( 'shell32.dll,
Control_RunDLL
intl.cpl,,2
'),
nil,
SW_NORMAL);

Geändert von hathor ( 8. Nov 2013 um 16:27 Uhr)
  Mit Zitat antworten Zitat
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Windows Gebietseinstellungen

  Alt 8. Nov 2013, 16:59
Wow, danke! Wenn ich fragen darf, wo hast Du das her?
  Mit Zitat antworten Zitat
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Windows Gebietseinstellungen

  Alt 8. Nov 2013, 18:24
Soweit ich grade gelesen hab, macht das ab Vista Probleme. Ich habe es nun über die Registry gelöst:

Delphi-Quellcode:
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
 try
  reg.RootKey := HKEY_CURRENT_USER;
  reg.OpenKey('Control Panel\International',true);
  reg.WriteString('Locale', '00000409');
  reg.WriteString('LocaleName', 'en-EN');
 finally
    reg.free;
  end;
Mehr als die 2 Werte brauche ich zum Glück nicht.
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#9

AW: Windows Gebietseinstellungen

  Alt 8. Nov 2013, 19:07
Muss das nicht "en-US" sein?
  Mit Zitat antworten Zitat
Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Windows Gebietseinstellungen

  Alt 8. Nov 2013, 19:22
Dachte ich auch, das zu startende Programm will aber anscheinend nur en-EN.
  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 14:42 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