用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
最新文章
- WCF传输大数据的设置
- Linux Kernel 3.11.4/3.10.15/3.4.65/3.0.99
- WordCount的程序设计没写出来怎么办
- wampserver 绑定域名 外部可以正常访问
- 函数return/获取元素样式/封装自己的库
- 获取IplImage 数据并打印
- 读《java核心技术卷一》有感
- 如何使用fiddler进行android手机测试
- 背包问题--nyoj题目106
- UVA 806 Spatial Structures
- Linux从用户层到内核层系列 - GNU系列之glibc介绍
- Ibatis之3个不经常使用的Query方法
- MYsql数据库ERROR总结
- .net平台的MongoDB使用
- addEventListener 的事件函数的传递【转载】
- docker file 示例
- InnoDB中锁的模式
- YII1 增、删、改、查数据库操作
- 批量Excel数据导入Oracle数据库 导入excel错误:外部表不是预期的格式 解决方案
- 1.5.1、CDH 搭建Hadoop在安装之前(定制安装解决方案---使用内部包裹存储库)