调用系统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);//执行按钮点击事件
- }
- }
- }
- }
调用系统api修改系统时间的更多相关文章
- 调用windows api 获取系统分辨率
c++中: int cxScreen,cyScreen; cxScreen=GetSystemMetrics(SM_CXSCREEN); cyScreen=GetSystemMetrics(SM_CY ...
- C#技术点--修改系统时间
C#的System.DateTime类提供了对日期时间的封装,用它进行时间的转换和处理很方便,但是我没有在其中找到任何可以用来修改系统时间的成员.用过VC.VB等的朋友可能知道,我们可以调用Win32 ...
- Wince修改系统时间问题
当我们需要修改到系统时间的时候,需要用到下面四个函数:SetLoaclTime,GetLocalTime,SetSystemTime,GetSystemTime.这四个函数是用来修改或者 ...
- Linux修改系统时间与时区
GMT (Greewich Mean Time) 格林威治标准时间:GMT是老的时间计量标准,根据地球的自转和公转来计算时间,也就是太阳每天经过位于英国伦敦郊区的皇家格林尼治天文台的标准时间就是中午 ...
- C/C++ 修改系统时间,导致sem_timedwait 一直阻塞的问题解决和分析
修改系统时间,导致sem_timedwait 一直阻塞的问题解决和分析 介绍 最近修复项目问题时,发现当系统时间往前修改后,会导致sem_timedwait函数一直阻塞.通过搜索了发现int sem_ ...
- Android 使用date set命令修改系统时间
测试环境:android 7.1.1 在adb shell中试图使用 date -s "yyyymmdd.[[[hh]mm]ss]"修改系统系统时间时,会提示 date: Unkn ...
- Centos7.4永久修改系统时间
[root@V3B01-zsy yum.repos.d]# date -s "2019-09-24 17:02:30" 2019年 09月 24日 星期二 17:02:30 CST ...
- 在 Xen 虚拟机下修改系统当前时间
在 Xen 虚拟机下修改系统当前时间 Xen 虚拟机默认不允许不同的虚拟机使用不同的系统时间,因此所有虚拟机的系统时间都会同宿主机的系统时间严格同步,用 date 命令修改虚拟机系统时间时虽然提示成功 ...
- Linux永久修改系统时间和时区方法
修改时区: 1> 找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai 用这个文件替换当前的/etc/localtime文件. 或者找你认为是标准时间的服务器, ...
随机推荐
- log4Net配置详解
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSe ...
- Eclipse中点击小猫提示Tomcat settings should be set in Tomcat Preference Page
1.window->preference->tomcat->tomcat-version选择自己tomcat版本 tomcat home 选择tomcat安装目录,即bin的上一层 ...
- CI 笔记(1)
1. 下载CI,官方网站,目前3.x版本已经更新,2.2.6版本为2.x版本的最后的一个版本.为了和视频教材一致,使用CI 2.x版本 2. 目录结构,从application里面的,controll ...
- 文字排版--字体(font-family)
我们可以使用css样式为网页中的文字设置字体.字号.颜色等样式属性.下面我们来看一个例子,下面代码实现:为网页中的文字设置字体为宋体. body{font-family:"宋体"; ...
- 一条sql语句循环插入N条不同记录(转)
SET NOCOUNT ON IF (OBJECT_ID('TB' ) IS NOT NULL ) DROP TABLE TB GO CREATE TABLE TB(ID INT IDENTITY ( ...
- asp.net尽量不在js里写<%%>
asp.net尽量不在js里写<%%> eg: <script type="text/javascript"> var rootsid="&quo ...
- c 连接数据库 mysql
sudo apt-get install mysql-server mysql-client 再装开发包代码:sudo apt-get install libmysqlclient15-dev 安装完 ...
- 马的遍历问题-回溯法应用-ACM
马的遍历问题 在n*m的棋盘中,马只能走“日” 字.马从位置(x,y)处出发,把棋盘的每一格都走一次,且只走一次.找出所有路径. 问题解的搜索空间? 棋盘的规模是n*m,是指行有n条边,列有m条边. ...
- 通用方法解决dedecms导航调用二级、三级栏目菜单
博客之前做网站的时候经常会遇到二级菜单.三级菜单.了解dede的人都知道从5.5版本开始都有二级菜单的调用方法了,网上也有不少的教程文章.不过这个调用需要修改dede源码的二级菜单样式.个人感觉不是很 ...
- sqlserver cte递归向上统计
数据字典如下