用C#修改系统区域和语言设置

原文:用C#修改系统区域和语言设置

这几天做项目,因为客户机的系统不同,发现客户机的区域和语言设置也不尽相同,导致程序运行时根据时间判断的很多属性和方法都出现各种各样的千奇百怪的问题。

修改程序太费时间,干脆在程序每次运行时修改客户的区域和语言设置(不管别的程序是否会出问题,先解决偶滴项目最重要啦嘿嘿,我是不是很坏呵呵)。同时发现很多人在找用C#修改系统区域和语言的方法,特将代码贴上,希望对各位朋友有所帮助。

PS:在XP和2003系统上测试通过,没试过vista/win7,理论没问题,因为都是通过调用系统API来修改的,和通过控制面板修改一样。

测试方法:

拖一个空白窗体,拖一个Button控件,然后双击button1进入代码模式的button1_Click方法,输入调用方法。

具体代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace WindowsFormsApplication1
{
public partial class svchost : Form
{
public svchost()
{
InitializeComponent();
}

[DllImport("kernel32.dll", EntryPoint = "GetSystemDefaultLCID")]
public static extern int GetSystemDefaultLCID();
[DllImport("kernel32.dll", EntryPoint = "SetLocaleInfoA")]
public static extern int SetLocaleInfo(int Locale, int dateType, string dateData);
public const int LOCALE_SLONGDATE = 0x20;
public const int LOCALE_SSHORTDATE = 0x1F;
public const int LOCALE_STIME = 0x1003;

public void datetimeformating()
{
try
{
int i = GetSystemDefaultLCID();
//设置系统短时间格式为HH:mm:ss
SetLocaleInfo(i, LOCALE_STIME, "HH:mm:ss");
//设置系统短日期格式为yyyy-MM-dd
SetLocaleInfo(i, LOCALE_SSHORTDATE, "yyyy-MM-dd");
//设置系统长日期格式为yyyy-MM-dd
SetLocaleInfo(i, LOCALE_SLONGDATE, "yyyy-MM-dd");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

private void button1_Click(object sender, EventArgs e)
{
datetimeformating();
}
}
}

按F5运行程序,点击button1,然后打开控制面板区域和语言看看,是不是已经变为你想要的格式了呵呵

转载请注明CSDN yalan

时间: 2024-10-02 06:17:01

用C#修改系统区域和语言设置的相关文章

“LINUX系统”与“客户端”语言设置“不一致”导致“显示乱码”

原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/40979421 实验环境 情况一 实验平台 WIN7 旗舰版 64bit 虚拟机软件 VM Virtual Box 4.2 虚拟机操作系统 Cent0S 5.6 语言英文 CRT版本 7.1.1 情况二 实验平台 WIN7 旗舰版 64bit 虚拟机软件 VM Virt

Debian 系统修改语言设置成英文

Debian 系统修改语言设置成英文 2012 年 6 月 19 日 / 东东东 / 3条评论 今天安装了一个Debian的虚拟机,安装的时候本来想选英语的,但是时区只能用美国的时区,于是就换上了中文的,没有提示选择时区. 发现在shell中文还是乱码,于是毅然的把语言更改成英语的.打开文件locale sudo vi /etc/default/locale 显示 LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh" 将其内容更改成 LANG

修改系统语言设置

系统为centos #system-config-language 改文件法: #cat /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" putty设置语言为utf-8,这样中文也不会乱码 修改系统语言设置

VMware下CentOS7设置网络以及修改系统语言

1.在VMware里,依次点击"编辑" - "虚拟网络编辑器",如下图,我选择的是NAT模式 为了能够使用静态IP,这里不要勾选"使用本地DHCP服务将IP分配给虚拟机"这个选项.然后是配置子网ip,子网IP与宿主机的ip一定不能处在同一地址范围里,否则就算虚拟机能上网,网络既慢,还不稳定.我主机的ip段是192.168.115.xxx,所以我配了192.168.10.xxx来避开主机的ip段,反正ip的第三个数字在0到254并且不是115就行.

修改系统默认语言

一.简介 在Linux的系统中经常碰到字符集导致的错误,本文总结了设置修改系统语言环境的方法步骤. 二.操作步骤 执行如下指令,查看当前使用的系统语言 echo $LANG 执行如下指令,查看系统安装的语言包 locale 有zh_CN表示已经安装了中文语言,如果没有中文语言,可以执行如下指令,安装中文语言包 yum groupinstall chinese-support 临时更换语言,可以通过输入设置 LANG=语言名称,如下 LANG="Zn_CN.UTF-8" 修改系统默认语言

CentOS修改系统默认语言与编码

有时候在安装CentOS无意中把默认语言设置为中文,而部分SSH软件不支持中文编码,所以在远程管理的时候会出现些乱码的现象. 如何修改CentOS的默认语言呢? 请先使用root权限帐户登陆 一.进入语言配置文件 vi  /etc/sysconfig/i18n 用SSH执行以上命令,用vi编辑器修改/etc/sysconfig/i18n文件.  www.2cto.com 二.修改语言 将默认的LANG="zh_CN.UTF-8"修改为 LANG="en_US.UTF-8&qu

Ubuntu修改系统语言为英文可支持中文

简单来说,就行修改/etc/default/locale文件,设置语言位UTF-8,如果没有这个语言,就执行命令locale-gen en_US.UTF-8进行安装,没有即时生效的话就重启. 查看当前系统语言 locale 修改系统语言 例如修改语言为英文 vi /etc/default/locale LANG="en_US.UTF-8" LANGUAGE="en_US:en" 重启后,再次查看系统语言 locale locale: Cannot set LC_CT

centos7修改系统语言为简体中文

说明 自己装系统时一般都可以自定义选择系统语言.可是云端服务器一般都是安装好的镜像,默认系统语言为英文,对于初学者可能还会有搞不懂的计算机词汇.这里简单说一下centos7怎么修改系统语言为中文. 修改centos7系统语言 查看系当前语言包 locale 查看系统拥有语言包 locale -a (zh_CN.UTF-8是简体中文,如果没有zh_CN.UTF-8,就安装语言包,如果存在可以直接设置) 安装简体中文语言包 yum install kde-l10n-Chinese 设置为中文临时修改

[BAT]批处理自动修改区域和语言选项

open a cmd window and type reg query "HKCU\Control Panel\International" which will show you the values as you want them. Then to modify them, use REG ADD "HKCU\Control Panel\International" /t REG_SZ /v LocaleName /d es-Mx /f for each v