14/11/2019, 09:59

[C#] Lập trình thay đổi ngày giờ hệ thống Windows

Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách thay đổi ngày giờ hệ thống Datetime của Windows trong lập trình C#. Trong lập trình ứng dụng, nhiều lúc các bạn muốn khi ứng dụng của mình chạy thì các máy client, sẽ phải chạy đúng ...

Xin chào các bạn, bài viết hôm nay mình sẽ tiếp tục hướng dẫn các bạn cách thay đổi ngày giờ hệ thống Datetime của Windows trong lập trình C#.

loi-ngay-gio-windows-10-thay-doi-ngay-gio-win-10

Trong lập trình ứng dụng, nhiều lúc các bạn muốn khi ứng dụng của mình chạy thì các máy client, sẽ phải chạy đúng theo thời gian chính xác của múi giờ của mình.

Tránh những trường hợp máy Client, người dùng cài đặt sai ngày tháng và thời gian.

Để ứng dụng của C# có thể can thiệp chỉnh sửa vào ngày giờ của hệ thống Windows, các bạn cần chạy ứng dụng dưới chế độ Run As Administrator.

Đối với máy mình đang sử dụng join Domain Controller của hệ thống domain công ty, mặc định thì windows sẽ không cho phép các bạn chỉnh thời gian được.

Nhưng với đoạn code thay đổi dưới đây, các bạn có thể dễ dàng thay đổi nhé.

Giao diện Demo ứng dụng Change Date Time System C#:

change_datetime_csharp

Source code Change DateTime C#:

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

namespace ChangeSystemDateSettings
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        public struct SystemDate
        {
            public ushort Year;
            public ushort Month;
            public ushort DayOfWeek;
            public ushort Day;
            public ushort Hour;
            public ushort Minute;
            public ushort Second;
            public ushort Millisecond;
        };


        [DllImport("kernel32.dll", EntryPoint = "SetSystemTime", SetLastError = true)]
        public extern static bool Win32SetSystemTime(ref SystemDate sysDate);

        private void button1_Click(object sender, EventArgs e)
        {
            SystemDate updatedTime = new SystemDate();
            updatedTime.Month = (ushort)dateTimePicker1.Value.Month;
            updatedTime.Day = (ushort)dateTimePicker1.Value.Day;
            updatedTime.Year = (ushort)dateTimePicker1.Value.Year;
           
          var result = Win32SetSystemTime(ref updatedTime);

            if (result)
            { 
                MessageBox.Show("The system date has changed!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    }
}

Thanks for watching!

DOWNLOAD SOURCE

Tags: change datetime system c#change date windows c#
0