// 针对于旧Windows系统,如Windows XP
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern int GetTimeZoneInformation(ref TimeZoneInformation lpTimeZoneInformation);
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern bool SetTimeZoneInformation(ref TimeZoneInformation lpTimeZoneInformation);
// 针对于新Windows系统,如Windows 7, Windows8, Windows10
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern int GetDynamicTimeZoneInformation(ref DynamicTimeZoneInformation lpDynamicTimeZoneInformation);
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern bool SetDynamicTimeZoneInformation(ref DynamicTimeZoneInformation lpDynamicTimeZoneInformation);
2. 相关结构struct类型
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
struct TimeZoneInformation
[MarshalAs(UnmanagedType.I4)]
internal int bias; // 以分钟为单位
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x20)]
internal string standardName; // 标准时间的名称
internal SystemTime standardDate;
[MarshalAs(UnmanagedType.I4)]
internal int standardBias; // 标准偏移
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 0x20)]
internal string daylightName; // 夏令时的名称
inter
1. 修改时区的Windows API// 针对于旧Windows系统,如Windows XP[DllImport("kernel32.dll", CharSet = CharSet.Auto)]public static extern int GetTimeZoneInformation(ref TimeZoneInformation lpTimeZoneInformation);[
自制的
Windows
OEM信息
修改
器,运行需要.NET 4.0,内附源码。
百度网盘下载链接:https://pan.baidu.com/s/1bVVqdx1oQ3OzOZ_wH35Fxg
提取码:fh5m
蓝奏云下载链接:https://gfdgdxi.lanzous.com/b01nmihzc
1.
修改
系统时间的
Windows
API
[DllImport("Kernel32.dll")]
public static extern void GetLocalTime(ref SystemTime lpSystemTime);
[DllImport("Kernel32.dll")]
public static extern bool SetLocalTime(ref SystemTi
最近在工作中遇到需要
修改
系统
时区
的问题,系统是嵌入式WinCE系统,虽说WinCE系统用户可以直接通过操作系统改系统
时区
,但我们嵌入式产品的设计是开机直接打开软件而禁止用户访问WinCE桌面,所以开发人员要在应用软件上实现设置
时区
功能。我们的应用软件是
C#
开发的,但我没找到
C#
查看全部
时区
和设置
时区
的接口,只有一个获取当前
时区
的接口。但我在网上找到了用命令行设置
时区
的方法,而
C#
可以直接调用命令行。
打开
windows
命令行,tzutil /g查看当前
时区
,tzutil /g列出...
由于工作需要我们有时常常需要转化当地时间为其它
时区
的时间,或是把某一个
时区
的时间,转成另一个
时区
。
最近由于用了一些
C#
的方法,下面小结一下,省得过后自已又忘了。
1。 用如下的方法,可以得到所有的
时区
信息。
TimeZoneInfo.GetSystemTimeZones()
2。得到
时区
ID
TimeZoneInfo.GetSystemTimeZones()[75].ID
这里是设置成 北京
时区
,如果需要设置成其他
时区
,需要读取注册表“"Software\\Microsoft\\
Windows
NT\\CurrentVersion\\Time Zones\\" + timeZoneKeyName”下的信息。
对于xp、
windows
server 2003调用的是SetTimeZoneInformation win32 api
对于其他高版本需要调用SetDynamicTimeZoneInformation。
private void GetControls1(Control fatherControl)
Control.ControlCollection sonControls = fatherControl.Controls;
//遍历所有控件
foreach (Control contro
使用resx文件实现Winform多语言切换,本博文提供的代码可以实现简体中文、繁体中文、英文的切换。如果需要增加其它语言的切换,只需要编写相应的语言的resx文件即可。 并且,当
修改
了语言之后,会更新所有打开的窗口。先贴几张图展示一下效果。
程序下载:点击打开链接
http://download.csdn.net/detail/softimite_zifeng/9731575
在使用图片的过程中,我们有时候需要将图片缩放到特定的宽度和高度,但是又不希望图片被直接拉伸而变形,而是实现图片的等比例缩放。类似于Winform的PictureBox的SizeMode属性的Zoom,而不是StretchImage。
//等比例缩放图片
private Bitmap ZoomImage(Bitmap bitmap, int destHeight, int destWidth)
1. 操作App.config需要添加引用System.Configuration,并且在程序中using System.Configuration。
2. 添加键为keyName、值为keyValue的项:
public void addItem(string keyName, string keyValue)
//添加配置文件的项,键为keyName,值为keyValue
1. 播放系统事件声音
System.Media.SystemSounds.Asterisk.Play();
System.Media.SystemSounds.Beep.Play();
System.Media.SystemSounds.Exclamation.Play();
System.Media.SystemSounds.Hand.Play();
System.Media.SystemS
// 导入
Windows
API函数
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
[DllImport("user32.dll")]
public static extern int SetWindowCompositionAttribute(IntPtr hwnd, ref WindowCompositionAttributeData data);
// 定义
Windows
API结构体和常量
[StructLayout(LayoutKind.Sequential)]
public struct AccentPolicy
public AccentState AccentState;
public int AccentFlags;
public int GradientColor;
public int AnimationId;
public enum AccentState
ACCENT_DISABLED = 0,
ACCENT_ENABLE_GRADIENT = 1,
ACCENT_ENABLE_TRANSPARENTGRADIENT = 2,
ACCENT_ENABLE_BLURBEHIND = 3,
ACCENT_INVALID_STATE = 4
[StructLayout(LayoutKind.Sequential)]
public struct WindowCompositionAttributeData
public WindowCompositionAttribute Attribute;
public IntPtr Data;
public int SizeOfData;
public enum WindowCompositionAttribute
WCA_ACCENT_POLICY = 19
static void Main()
// 获取当前活动窗口的句柄
IntPtr hwnd = GetForegroundWindow();
// 创建AccentPolicy对象并设置颜色
AccentPolicy accent = new AccentPolicy();
accent.AccentState = AccentState.ACCENT_ENABLE_TRANSPARENTGRADIENT;
accent.GradientColor = ColorToABGR(Color.Red); // 设置为红色
// 创建WindowCompositionAttributeData对象并设置属性
WindowCompositionAttributeData data = new WindowCompositionAttributeData();
data.Attribute = WindowCompositionAttribute.WCA_ACCENT_POLICY;
data.SizeOfData = Marshal.SizeOf(accent);
data.Data = Marshal.AllocHGlobal(data.SizeOfData);
Marshal.StructureToPtr(accent, data.Data, false);
// 调用SetWindowCompositionAttribute函数来
修改
标题栏颜色
SetWindowCompositionAttribute(hwnd, ref data);
// 释放内存
Marshal.FreeHGlobal(data.Data);
// 将System.Drawing.Color转换为ABGR格式的整数
static int ColorToABGR(Color color)
return (color.B << 24) | (color.G << 16) | (color.R << 8) | color.A;
这段代码使用了
Windows
API函数来
修改
活动窗口的标题栏颜色。你可以根据需要
修改
`accent.GradientColor`的值,使用不同的颜色。注意,该代码只能在
Windows
操作系统上运行,并且需要在管理员权限下才能生效。