Autor Beitrag
tfsonic
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 29.07.10 15:57 
Guten Tag,

habe ewig gesucht aber nichts gefunden und zwar möchte in C# per SourceCode die Regions- und Sprachoptionen in der Systemsteuerung ändern. Mit CultureInfo klappt es leider nicht.

Vielen Dank für jeder Hilfe.

Gruß
Timo
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 29.07.10 16:18 
Soweit ich weiß gibt es dafür keine Funktionalität im .NET Framework. Musst du wohl per PInvoke über die SetLocaleInfo API erledigen.
tfsonic Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 29.07.10 17:21 
Alles klar danke.
tfsonic Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 30.07.10 12:31 
Hallo,

leider bekomme ich es nicht ganz hin, ich bekomme immer ein false zurück weiß aber nicht warum. Bräuchte nochmal hilfe. Mein Code sieht bis jetzt so aus

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
[DllImport("kernel32.dll", SetLastError = true)]


        static extern bool SetLocaleInfo(int LOCALE_SYSTEM_DEFAULT, int LOCALE_SSHORTDATE, string lpLCData);

        public const int LOCALE_STIMEFORMAT = 0x1003;

        public const int LOCALE_SYSTEM_DEFAULT = 0x800;

        public const int LOCAL_SSHORTDATE = 0x31;

        bool test = SetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCAL_SSHORTDATE, "yyyy-MM-dd");


danke

Moderiert von user profile iconKha: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Fr 30.07.10 13:10 
Ich vermute LOCAL_SSHORTDATE sollte decimal 31 sein nicht Hex. Also 0x1F.
tfsonic Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 02.08.10 08:14 
Danke erstmal funktioniert jetzt, aber ich bekomme es einfach nicht hin das sich die Sprache in der Systemsteuerung unter Regionaleoptionen ändert. Weiß nicht mehr weiter, wäre nett wenn jemand ein Tipp hätte.

Danke
tfsonic Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 02.08.10 11:16 
Bin jetzt ein etwas anderen Weg gegangen und zwar ändere ich jetzt die Werte direkt in der Windows Registrierung was auch alles gut klappt. Allerdings gibt es noch ein Problem.

Dazu hoffe ich das jemand weiß, wie man Windows dazu bekommt die Einträge in der Registrierung neu einzulesen. Denn wenn ich mich ab- und wieder anmelde sind die Änderungen in der Registrierung von Windows übernommen worden.

Habe es mit dieser WindowsAPI Funktion versucht, die auch ohne Fehlermeldung durchläuft aber leider keinen gewünschten Effekt liefert.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool
            SendMessageTimeout(IntPtr hWnd, int Msg, int wParam, string lParam, int fuFlags, int uTimeout, out int lpdwResult);

        public const int HWND_BROADCAST = 0xffff;
        public const int WM_SETTINGCHANGE = 0x001A;
        public const int SMTO_NORMAL = 0x0000;
        public const int SMTO_BLOCK = 0x0001;
        public const int SMTO_ABORTIFHUNG = 0x0002;
        public const int SMTO_NOTIMEOUTIFNOTHUNG = 0x0008;


Danke schon einmal im Vorraus.

Moderiert von user profile iconKha: C#-Tags hinzugefügt