使用vbs更改系统区域/位置设置

时间:2015-09-25 09:32:07

标签: vbscript regional-settings

我想知道是否有人可以协助我查询。

每周一次,我从美国同行那里得到文件,我需要在本地保存到我的机器,并更改文件的格式。我已经创建了一个可以执行SaveAs例程并保存它的VBScript,但是为了在美国保留日期格式,我必须在程序之前将控制面板中的Region设置更改为US,然后更改为默认本地设置。

我一直在研究这个并从微软网站获得一些想法,展示如何使用Set Locale和Get locale,但我的代码似乎并没有真正改变任何东西,即使它没有错误地执行。

有人可以给我一些指示......

<TextBlock Text="{Binding ssubname}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource TextBlockMnuTekst}"/>

1 个答案:

答案 0 :(得分:0)

socket.manager.handshaken[socket.id].address

此脚本将更改注册表中的区域设置。谨慎使用。这将更改为美国,因此如果您打算使用此脚本,请确保在更改之前知道默认设置。仅仅恢复控制面板中的设置将不起作用。

下面的脚本会将所有内容再次更改回英国。

Option Explicit

'Define a key registry path
Dim strComputer
Dim objRegistry
Dim strKeyPath
Dim strValueName
Dim getValue
Dim regKeyPath
Dim strLocaleName, strCountry, strshortDateValue, strlongDateValue, strshortTimeValue, strlongTimeValue, strfirstDayOfWeekValue

Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
regKeyPath = "Control Panel\International"

strLocaleName = "en-US" 
strCountry = "United States" 
strshortDateValue = "M/d/yyyy"
strlongDateValue = "dddd, MMMM d, yyyy"
strshortTimeValue = "h:mm tt"
strlongTimeValue = "h:mm:ss tt"
strfirstDayOfWeekValue = "6"

objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "LocaleName", strLocaleName
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sCountry", strCountry
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sShortDate", strshortDateValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sLongDate", strlongDateValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sShortTime", strshortTimeValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "sTimeFormat", strlongTimeValue
objRegistry.SetStringValue HKEY_CURRENT_USER, regKeyPath, "iFirstDayOfWeek", strfirstDayOfWeekValue


WScript.Echo "Successfully changed system regional settings."