2012-03-19 2 views
0

Возможно ли установить региональные настройки для процесса через скрипт VB?VB Script Regional Settings

Dim oEnv: Set oEnv = WshShell.Environment("PROCESS") 
oEnv.Item("NLS_LANG") = "AMERICAN_AMERICA.WE8MSWIN1252" 

Это один бит кода, который я получил. Не знаете, как это работает? Я хотел бы установить стандарты и форматы моего приложения специально для Соединенных Штатов из Соединенного Королевства.

Благодаря Nishant

ответ

0

Ваш компьютер использует переменные окружения, чтобы помнить некоторые внутренние настройки для приложений. Вы можете просмотреть их, нажав клавишу Windows (флаг) + Pause/Break, выбрав вкладку «Дополнительно», нажав кнопку «Переменные среды» и просмотрите раздел «Системные переменные».

С целью WshShell.Environment, вы можете читать и писать эти переменные:

Option Explicit 
dim wshshell, EnvVar 
set WshShell = WScript.CreateObject("WScript.Shell") 

Dim oEnv: Set oEnv = WshShell.Environment("PROCESS") 

' This shows you all environment variables in your system:  
For each EnvVar in oEnv 
    msgbox EnvVar 
Next 

' This shows you a particular environment variable: 
msgbox oEnv.item("OS") 

' And this sets a particular environment variable: 
oEnv.Item("NLS_LANG") = "AMERICAN_AMERICA.WE8MSWIN1252" 

NLS_LANG является настройка используется Oracle и устанавливает культурные установки. Установив его в AMERICAN_AMERICA.WE8MSWIN1252, вы расскажете своей реализации Oracle о том, какую культуру вы хотите использовать в своей конкретной системе (помните, что переменные окружения на ПК). Вы можете найти более подробную информацию о нем onthenet.

+0

Большое спасибо за Ваш ответ. То, что я пытаюсь достичь, - это установить региональные настройки специально для моего приложения. Таким образом, это будет на уровне процесса. Я просто наткнулся на SetLocale(). Будет ли помощь? – Nishant

+0

SetLocale() используется для настройки языкового стандарта веб-страницы через VBScript. Если вы не используете ASP, я не думаю, что это сработает. I ваше приложение взаимодействует с базой данных Oracle (особенно установленной в Unix), тогда вы хотите использовать системную переменную NLS_LANG. Примечание. Я только стреляю в темноте. Я хорошо знаком с VBScript и т. Д., Но не с настройками Oracle и пространством имен. – AutomatedChaos

0

Это необходимо установить в реестре. Используемый вами путь реестра зависит от версии, которую вы используете.

Для Oracle версии 7:

HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE

Const HKEY_LOCAL_MACHINE = &H80000002 

strKeyPath = "SOFTWARE\ORACLE" 
strValueName = "NLS_LANG" 
strValue = "AMERICAN_AMERICA.WE8MSWIN1252" 

strComputer = "." 
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") 
objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue 

Для Oracle версии базы данных 8, 8i и 9i:

HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ Homex \ где «x» - это уникальный номер, идентифицирующий дом Oracle. HOME0 первая установка

Const HKEY_LOCAL_MACHINE = &H80000002 

strKeyPath = "SOFTWARE\ORACLE\HOMEx" 
strValueName = "NLS_LANG" 
strValue = "AMERICAN_AMERICA.WE8MSWIN1252" 

strComputer = "." 
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") 
objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue 

Для Oracle Database 10g:

HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ KEY_

Const HKEY_LOCAL_MACHINE = &H80000002 

strKeyPath = "SOFTWARE\ORACLE\KEY_<oracle_home_name>" 
strValueName = "NLS_LANG" 
strValue = "AMERICAN_AMERICA.WE8MSWIN1252" 

strComputer = "." 
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") 
objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue