zoukankan      html  css  js  c++  java
  • 调用系统api修改系统时间

    一:截图

    二:代码

    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 SetDate
    {
        public partial class Frm_Main : Form
        {
            public Frm_Main()
            {
                InitializeComponent();
            }
    
            public class SetSystemDateTime//自定义类SetSystemDateTime,用于设置系统日期,为了使用DllImportAttribute类(DllImportAttribute类是指可以将属性应用于方法,
                //并由非托管动态链接库(DLL)作为静态入口点公开),
                //需要引入命名空间:using System.Runtime.InteropServices;
            {
                [DllImportAttribute("Kernel32.dll")]//使用包含要导入的方法的 DLL 的名称初始化 DllImportAttribute 类的新实例。
                public static extern void GetLocalTime(SystemTime st);//C#要设置系统时间必须要调用Win32的API,而其中相关的函数就是SetSystemTime(), GetSystemTimer(), SetLocalTime(), GetLocalTime(),
                //这似乎是用VC写的函数,在VC++中是可以直接调用的。
                //对于这两个函数,其输入参数必须是一个下面这样的结构体,其成员变量类型必须是ushort,成员变量不能改变顺序。
                [DllImportAttribute("Kernel32.dll")]
                public static extern void SetLocalTime(SystemTime st);
            }
    
            [StructLayoutAttribute(LayoutKind.Sequential)]
            public class SystemTime//自定义类SystemTime用于定义日期类
            {
                public ushort vYear;//
                public ushort vMonth;//
                public ushort vDayOfWeek;//星期
                public ushort vDay;//
                public ushort vHour;//小时
                public ushort vMinute;//
                public ushort vSecond;//
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                this.textBox1.Text = DateTime.Now.ToString("F") +//得到系统时间
                    "  " + DateTime.Now.ToString("dddd");
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                if (MessageBox.Show("您真的确定更改系统当前日期吗?",//设置系统当前日期时间
                    "信息提示", MessageBoxButtons.OK) == DialogResult.OK)
                {
                    DateTime Year = this.dateTimePicker1.Value;//得到时间信息
    
                    SystemTime MySystemTime = new SystemTime();//创建系统时间类的对象
    
                    SetSystemDateTime.GetLocalTime(MySystemTime);//得到系统时间
    
                    MySystemTime.vYear = (ushort)this.dateTimePicker1.Value.Year;//设置年
                    MySystemTime.vMonth = (ushort)this.dateTimePicker1.Value.Month;//设置月
                    MySystemTime.vDay = (ushort)this.dateTimePicker1.Value.Day;//设置日
                    MySystemTime.vHour = (ushort)this.dateTimePicker2.Value.Hour;//设置小时
                    MySystemTime.vMinute = (ushort)this.dateTimePicker2.Value.Minute;//设置分
                    MySystemTime.vSecond = (ushort)this.dateTimePicker2.Value.Second;//设置秒
    
                    SetSystemDateTime.SetLocalTime(MySystemTime);//设置系统时间
                    button1_Click(null, null);//执行按钮点击事件
                }
            }
        }
    }
  • 相关阅读:
    005-请说一说黑盒与白盒的测试方法
    004-请问测试开发需要哪些知识?需要具备什么能力?
    003-请回答集成测试和系统测试的区别,以及它们的应用场景主要是什么?
    002-请你回答一下单元测试、集成测试、系统测试、验收测试、回归测试这几步中最重要的是哪一步
    001-请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试
    012-App测试web测试的区别
    使用控制台调试WinForm窗体程序
    .NET MD5 加密
    域名转化到IP地址的实现
    特定用户QQ群聊天记录导出的实现
  • 原文地址:https://www.cnblogs.com/hongmaju/p/3763385.html
Copyright © 2011-2022 走看看