// 针对于旧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 操作系统上运行,并且需要在管理员权限下才能生效。