Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Regions- und Sprachoptionen per Skript ändern

Frage Microsoft Windows Systemdateien

Mitglied: Nohouse303

Nohouse303 (Level 1) - Jetzt verbinden

10.11.2005, aktualisiert 17.10.2012, 18247 Aufrufe, 13 Kommentare

Hallo Onliners,

mein heutiges Problem.
Ich habe eine Software die nach Installation von SP2 (WinXP) Punkt und Komma nicht mehr richtig unterscheidet
Lösung: Ich gehe auf die Regions- und Sprachoptionen und wähle sagen wir Englisch. Dann drücke ich Übernehmen. Danach wähle ich wieder Deutsch (Übernehmen) und starte mein Porgramm. Alles läuft.
Das muss jeder User machen, der mit dieser Software arbeiten will.

Frage: Gibt es eine Möglichkeit per Autostart (Batch, Skript) diesen Vorgang zu automatisieren?

Schon mal im voraus Danke für eure Unterstützung.

Gruss Nohouse
Mitglied: Biber
10.11.2005, aktualisiert 17.10.2012
Moin Nohouse303,
kein Problem...bis auf die Vorarbeit..die wird wohl an Dir hängenbleiben..

Im meinem <a href=http://www.administrator.de/wissen/workshop-batch-for-runaways-part-iii ... target="blank">Batch Tut III<a> habe ich mal ein bisschen gegraben, wo denn die "Regional Settings" so stehen in M$s Innereien.
Für Deinen Fall gäbe es also zwei eben-mal-schnell realisierbare Möglichkeiten:

1) per Hand mal eine RegionalSettings.reg-Datei, mit der dein Programm läuft, aus der Registry zu exportieren.
Beim Kunden dann vor Programmstart dessen alte Reg-Werte in diesem Zweig sichern, Deine Reg einlesen, nach Programmende den alten Zustand wiederherstellen.
2) oder mal im Detail nachzuforschen. welche zwei oder drei RegKeys denn verantwortlich sind für Dein Komma/Punkt-Problem. Und nur diese RegKeys zu ersetzen/zu ergänzen.

Aber die Recherche musst Du wohl erst machen.. Bätche brauchen immer irgendwelche festen Punkte im Raum, bevor sie loslaufen können.
Beim Handwerklichen kann ich dann bei Bedarf gerne Hilfestellung geben.

Grüße
Biber
Bitte warten ..
Mitglied: Nohouse303
11.11.2005 um 14:00 Uhr
Hallo, erstmal Danke für deine schnelle Antwort.

Habe die Reginhalte verglichen und muss wohl folgende Inhalte ergänzen.

Nachfolgender Pfad existiert beireits. Aber ohne Eintrag

[HKEY_USERS\S-1-5-21-8915387-466359577-720635935-18223\Control Panel\International]
"Locale"="00000407"
"sLanguage"="DEU"
"sCountry"="Deutschland"
"iCountry"="49"
"s1159"=""
"s2359"=""
"sTimeFormat"="HH:mm:ss"
"sTime"=":"
"iTime"="1"
"iTLZero"="1"
"iTimePrefix"="0"
"sShortDate"="dd.MM.yyyy"
"sDate"="."
"iDate"="1"
"sLongDate"="dddd, d. MMMM yyyy"
"sCurrency"="?"
"iCurrency"="3"
"iNegCurr"="8"
"iCurrDigits"="2"
"sDecimal"=","
"sMonDecimalSep"=","
"sThousand"="."
"sMonThousandSep"="."
"sList"=";"
"iDigits"="2"
"iLZero"="1"
"iNegNumber"="1"
"sNativeDigits"="0123456789"
"NumShape"="1"
"iMeasure"="0"
"iCalendarType"="1"
"iFirstDayOfWeek"="0"
"iFirstWeekOfYear"="2"
"sGrouping"="3;0"
"sMonGrouping"="3;0"
"sPositiveSign"=""
"sNegativeSign"="-"

Dieser Pfad mit Eintrag ist neu hinzugekommen.
[HKEY_USERS\S-1-5-21-8915387-466359577-720635935-18223\Control Panel\International\Geo]
"Nation"="94"

Wie kann ich jetzt ohne Abfrage den Vorgang automatisieren?

Danke schon mal im voraus.

Gruss Nohouse
Bitte warten ..
Mitglied: Biber
11.11.2005 um 15:34 Uhr
Moin Nohouse,
mach es analog zu dem Beispiel in dem o.a. Tut mit reg.exe oder mit RegEdit.exe

und das Ganze in einem kleinen Programmaufruf-Batch:
---StartNohouseProggi.bat
@echo off &setlocal
Set "tempreg=%temp%\My.reg"
Echo Windows Registry Editor Version 5.00 >%tempreg%
Echo. >>%tempreg%
Echo [HKEY_CURRENT_USER\Control Panel\International\Geo] >>%tempreg%
Echo "Nation"="94">>%tempreg%
regedit /s %tempreg%
start /w x:\yz\NohouseProggi.exe
---StartNohouseProggi.bat

..aber auf jeden Fall unter HKCU ersetzen, nicht unter dieser SID-ID.. die passt ja nur auf einem Rechner.
HTH Biber
Bitte warten ..
Mitglied: Nohouse303
12.11.2005 um 16:45 Uhr
Hallo, erstmal vielen Dank für das schnelle posten.
Bin allerdings noch frisch was die Batchprogrammierung angeht.
Was Bedeutet die Zeile:

Set "tempreg=%temp%\My.reg"

Wird eine neue Datei mit dem Namen My.reg erstellt?

Fehlt in der folgendenzeile nicht ein ">" for ...Version 5.00 >%tempreg%

Echo Windows Registry Editor Version 5.00 >%tempreg%

Meine Batch sieht jetzt folgendermaßen aus.
Die SIS lese ich mir aus.
**
@echo on &setlocal
Set "tempreg=%temp%\My.reg"

for /r "C:\Dokumente und Einstellungen\%USERNAME%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Credentials" %%a in (.) do set Letztes=%%a

for /F "delims=\ tokens=8" %%i in ("%Letztes%") do Set Dirname=%%i

Echo Windows Registry Editor Version 5.00 >%tempreg%
Echo. >>%tempreg%
Echo [HKEY_USERS\%Dirname%\Control Panel\International\Geo] >>%tempreg%
Echo "Nation"="94">>%tempreg%

Echo [HKEY_USERS\%Dirname%\Control Panel\International]>>%tempreg%
Echo "Locale"="00000407" >>%tempreg%
Echo "sLanguage"="DEU" >>%tempreg%
Echo "sCountry"="Deutschland" >>%tempreg%
Echo "iCountry"="49" >>%tempreg%

regedit /s %tempreg%

Kann das funzen?

Gruss und Danke

Nohouse
Bitte warten ..
Mitglied: Biber
12.11.2005 um 22:46 Uhr
Moin, Nohouse,
Hallo, erstmal vielen Dank für das schnelle posten.
Dafür nich'....

Was Bedeutet die Zeile:
Set "tempreg=%temp%\My.reg"
Hier setze ich nur eine Variable namens "tempreg" für die temporäre Datei, die ich mit "Echo" schreibe.
Und die soll im Verzeichnis %temp% angelegt werden, da hat jeder Zugriff.
Dass diese "Set"-Anweisung in Anführungszeichen funktioniert, sagt M$ nicht, aber ich. Dokumentiert ist es nicht.

Wird eine neue Datei mit dem Namen My.reg erstellt?
Jepp, aber erst später..
Fehlt in der folgendenzeile nicht ein ">" vor ...Version 5.00 >%tempreg%
Nein.. in der ersten ECHO-Zeile wird die Datei neu angelegt, ggf. eine vorhandene überschreiben. In den folgenden Zeilen wird angehängt.
Meine Batch sieht jetzt folgendermaßen aus.
Die SIS lese ich mir aus.
Halte ich für überflüssig und gefährlich. Wozu?? Der aktuelle Benutzer heißt immer HKEY_CURRENT_USER *kopfschüttelt

**
@echo on &setlocal
Set "tempreg=%temp%\My.reg"

for /r "C:\Dokumente und Einstellungen\%USERNAME%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Credentials"
Hmmm, ist nicht portabel. Bei mir (mit Installation auf Laufwerk D würdest Du ins Leere laufen..
Nimm besser statt
"C:\Dokumente und Einstellungen\%USERNAME%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Credentials"...
...folgendes: "%APPDATA%\Microsoft\Credentials".
Macht es außerdem lesbarer.
Wenn bei Deinen Kunden da was drin steht... ich würde erst prüfen, ob das Verzeichnis ..\Credentials" existiert und nicht HIDDEN/SYSTEM ist.
Denn sonst greift der FOR /R..IN DO-Befehl .. möglicherweise daneben.
%%a in (.) do set Letztes=%%a
...ich würde ....%%a in (.) do set "Letztes=%%a" ......schreiben
for /F "delims=\ tokens=8" %%i in ("%Letztes%") do Set Dirname=%%i
...ich würde ...set "Set Dirname=%%i" ......schreiben.

jo, mag sein... glaub ich Dir mal einfach, dass bei %Letztes% das Richtige drin steht.

Echo Windows Registry Editor Version 5.00 >%tempreg%
Echo. >>%tempreg%
Echo [HKEY_USERS\%Dirname%\Control Panel\International\Geo] >>%tempreg%
WARUM AUF HKEY_USERS???? Darfst Du das überall????
Gehst Du immer mit ADMIN-Rechten rein?... Mach ich nicht mal bei Freunden...
...
...
regedit /s %tempreg%

>Kann das funzen?
Ja, kann... funk-ti-o-nie-ren *seufz
.. dubios sind mir diese SID/HKEY_USERS-Zugriffe... dazu brauchst Du die Rechte. Ich würde immer über HKEY_CURRENT_USER gehen.
Und dieses "C:\Dokumente......" hatte ich ja angesprochen. Klappt halt in 70% der Fälle. Bei 30% wirst Du angerufen.."jammer..geht nicht.."

Gruss zurück

Biber
Bitte warten ..
Mitglied: Nohouse303
13.11.2005 um 09:34 Uhr
Top!

Danke Dir für deine Hilfe.

Werde ich Montag gleich mal ausprobieren.

Gruss der Nohouse303
Bitte warten ..
Mitglied: Biber
11.02.2006 um 13:27 Uhr
@fadi
Das gefällt mir aber grundsätzlich gut. Probier ich aus.
In der Praxis würde ich wahrscheinlich eine Kombination aus beiden Ansätzen vorziehen - die bestehenden Regional Settings vorher sichern und ggf. später restaurieren.
Aber die Übersichtlichkeit Deiner Variante hat was Charmantes. Danke.

Gruß
Biber
Bitte warten ..
Mitglied: cyrus1683
16.07.2007 um 10:56 Uhr
Hallo,

ich bin grad dabei ein Script zu schreiben mit dem ich unter XP 64 bit die Sprache wechseln kann. Bei XP 64 gibt es ja Language Packs, wo man dann in der Systemst. von einer Sprache zu anderen wechseln kann.
Da wir mehrere Niederlassungen auch im Ausland haben, will ich dazu ne Batch schreiben und hab dafür die Einträge unter
[HKEY_USERS\S-1-5-21-8915387-466359577-720635935-18223\Control Panel\International]
und
[HKEY_USERS\S-1-5-21-8915387-466359577-720635935-18223\Control Panel\International\Geo]

dementsprechend geändert. Das macht er auch ohne Prob nur leider ist trotzdem noch alles englisch....zumindest die Anmeldung ist schon auf deutsch aber das Startmenü usw. noch nicht.
Meine Frage: Gibt es noch andere Stellen in der Registry die man ändern muss?

Wäre echt dankbar für nen Hinweis!
Bitte warten ..
Mitglied: 50496
16.07.2007 um 11:03 Uhr
Die SID für den User ist variabel und überall anders. Erstens hast du die nicht überall zur Verfügung und zweitens kommst du immer nur an den angemeldeten User (HKEY_CURRENT_USER) ran. Das hat Biber weiter vor schon beschrieben.

Außerdem muss das MUI installiert sein. Wo dort die Umschaltung erfolgt, weiß ich aber nicht. Die Texte stehen jedenfalls in den entsprechenden Ressourcen der jeweiligen DLLs.
Bitte warten ..
Mitglied: cyrus1683
16.07.2007 um 11:16 Uhr
kann ich irgendwie durch einen Befehl herausfinden welche SID der aktuelle User hat?
dann bräuchte ich die ja nur abfragen!
Bitte warten ..
Mitglied: 50496
16.07.2007 um 11:25 Uhr
Wozu willst du die abfragen? Der Schlüssel für den aktuellen User wird bei der Anmeldung nach HKEY_CURRENT_USER kopiert, da musst du ändern.
Bitte warten ..
Mitglied: cyrus1683
16.07.2007 um 13:42 Uhr
ja schreibfehler, klar muss ich da was ändern ;)

hab mal mit RegMond aufgezeichnet was in der Registry alles geändert wird.
momentan sieht mein Code so aus:

reg add HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache\ /v LangID /f /t REG_BINARY /d "09 04"
reg add HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache\ /v "@C:\WINNT\ime (x86)\sptip.dll,-600" /f /t REG_BINARY /d "Speech Recognition"
reg add "HKCU\Control Panel\Desktop\" /v MUILanguagePending /f /t REG_SZ /d 00000407
reg add "HKCU\Keyboard Layout\Toggle\" /v "Language Hotkey" /f /t REG_SZ /d 1
reg add "HKCU\Keyboard Layout\Toggle\" /v "Layout Hotkey" /f /t REG_SZ /d 2
reg add HKCU\Software\Microsoft\CTF\LangBar\ /v ShowStatus /f /t REG_DWORD /d 0x4
reg add HKCU\Software\Microsoft\CTF\LangBar\ /v Transparency /f /t REG_DWORD /d 0xFF
reg add HKCU\Software\Microsoft\CTF\LangBar\ /v Label /f /t REG_DWORD /d 0x1
reg add HKCU\Software\Microsoft\CTF\LangBar\ /v ExtraIconsOnMinimized /f /t REG_DWORD /d 0x0
reg add "HKCU\Software\Microsoft\windows\CurrentVersion\Run\" /v "ctfmon.exe" /f /t REG_SZ /d "C:\WINNT\system32\CTFMON.EXE"
reg add "HKCU\Control Panel\International" /v iCountry /f /t REG_SZ /d 49
reg add "HKCU\Control Panel\International" /v iCurrency /f /t REG_SZ /d 3
reg add "HKCU\Control Panel\International" /v iLZero /f /t REG_SZ /d 1
reg add "HKCU\Control Panel\International" /v iNegCurr /f /t REG_SZ /d 8
reg add "HKCU\Control Panel\International" /v Locale /f /t REG_SZ /d 00000407
reg add "HKCU\Control Panel\International" /v s1159 /f /t REG_SZ /d
reg add "HKCU\Control Panel\International" /v s2359 /f /t REG_SZ /d
reg add "HKCU\Control Panel\International" /v sCountry /f /t REG_SZ /d Germany
reg add "HKCU\Control Panel\International" /v sCurrency /f /t REG_SZ /d €
reg add "HKCU\Control Panel\International" /v sDate /f /t REG_SZ /d .
reg add "HKCU\Control Panel\International" /v sLanguage /f /t REG_SZ /d DEU
reg add "HKCU\Control Panel\International" /v sList /f /t REG_SZ /d ;
reg add "HKCU\Control Panel\International" /v sLongDate /f /t REG_SZ /d dddd. d. MMMM yyyy
reg add "HKCU\Control Panel\International" /v sMonDecimalSep /f /t REG_SZ /d ,
reg add "HKCU\Control Panel\International" /v sMonThousandSep /f /t REG_SZ /d .
reg add "HKCU\Control Panel\International" /v sShortDate /f /t REG_SZ /d dd.MM.yyyy
reg add "HKCU\Control Panel\International" /v sThousand /f /t REG_SZ /d .

reg add "HKCU\Control Panel\International\Geo" /v Nation /f /t REG_SZ /d 94
Bitte warten ..
Mitglied: Nohouse303
18.02.2008 um 18:45 Uhr
Hallo Users,

nach Jahren der Abweisenheit muss ich diesen Beitrag noch mals wieder aufleben lassen.

Problem:

Jetzt muss ich auch das Eingabegebietsschema ändern.

Das mache ich neuerdings wie folgt:

Reg add "HKEY_USERS\%Dirname%\Keyboard Layout\Preload" /v "1" /t "Reg_SZ" /d "00000409" /f >NUL
Reg add "HKEY_USERS\%Dirname%\Keyboard Layout\Preload" /v "2" /t "Reg_SZ" /d "00000407" /f >NUL

Die Änderungen werden auch in der Regedit sichtbar. Jedoch im Windowsfenster nicht. Soll heissen, die Einstellungen werden nicht wirksam!!

Warum nicht?

Gruss der Nohouse
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Netzwerk
gelöst Netzwerkdrucker nach Printservertausch im Login Skript ändern. (7)

Frage von steveauskiel zum Thema Windows Netzwerk ...

XML
gelöst XML Datei per Skript ändern (12)

Frage von chrisen zum Thema XML ...

Batch & Shell
Powershell Universelles Skript zum Ordnerberechtigungen ändern (3)

Frage von pixel0815 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...