标签
C#设置系统时间、捕获系统时间更改的通知
今天,有网友提问:
C# 如何更改系统的时间?
所以写了这篇博文。要实现的功能包括2点:
- 修改系统时间
- 获取系统时间改变时的消息通知
namespace 操作系统时间 { using System.Runtime.InteropServices; using Microsoft.Win32; class Program { /// <summary> /// 定义操作系统的结构体 /// </summary> [StructLayout(LayoutKind.Sequential)] internal struct SystemTime { public ushort wYear; public ushort wMonth; public ushort wDayOfWeek; //此项不要给予赋值 public ushort wDay; public ushort wHour; public ushort wMinute; public ushort wSecond; public ushort wMiliseconds; //此项不建议赋值 } /// <summary> /// 引入 WINDOWS API 声明 /// </summary> /// <param name="sysTime"></param> /// <returns></returns> [DllImport("Kernel32.dll", SetLastError=true)] public static extern bool SetLocalTime(ref SystemTime sysTime); static void Main(string[] args) { ////添加接收系统时间更改通知的处理事件 Microsoft.Win32.SystemEvents.TimeChanged += new EventHandler(SystemEvents_TimeChanged); SystemTime st = new SystemTime(); st.wYear = 2010; st.wMonth = 7; st.wDay = 12; st.wHour = 1; st.wMinute = 0; st.wSecond = 0; bool ret = false; try { ret = SetLocalTime(ref st); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadKey(true); } static void SystemEvents_TimeChanged(object sender, EventArgs e) { Console.WriteLine("System Time changed to: {0:g}", DateTime.Now); } } }
就是这样了,有问题,欢迎交流,
阅读全文 ]诊断系统的Winsock2是否损坏以及修复的方法
Winsock / Winsock2 是Windows系统中,TCP相关网络应用的核心。如果Winsock2损坏、被破坏,那么就会出现可以PING通,可以上QQ,但是不能浏览网页,不能使用FTP等的情况。
本文,说明一下如何诊断Winsock2是否已经损坏,以及如果损坏了,如何修复的情况,适用于 XP Sp2 及更高版本的系统。
一、 Winsock2是否损坏的诊断
- 单击“开始”,单击“运行”,键入“Msinfo32”,然后单击“确定”。
- 依次展开“组件”和“网络”,然后单击“协议”。
- “协议”下将显示如下信息。如果 Winsock2 项未损坏,则节标题中将包括下列名称:
- MSAFD Tcpip [TCP/IP]
- MSAFD Tcpip [UDP/IP]
- RSVP UDP Service Provider
- RSVP TCP Service Provider
- MSAFD NetBIOS [\Device\NetBT_Tcpip...
- MSAFD NetBIOS [\Device\NetBT_Tcpip...
- MSAFD NetBIOS [\Device\NetBT_Tcpip...
- MSAFD NetBIOS [\Device\NetBT_Tcpip...
- MSAFD NetBIOS [\Device\NetBT_Tcpip...
- MSAFD NetBIOS [\Device\NetBT_Tcpip...
- 如果安装了 NWLink IPX/SPX 协议,还会有 MSAFD nwlnkipx [IPX] 类似的项。
- 但是,有一点是确定的: 微软自带的项,除了2个 RSVP 开头的外,其他的都是以 MSAFD 开头的。如果发现其他的,则说明是有其他的东西被安装了(有可能是病毒,也有可能是代理软件之类的),如果项数少于 上面的10项,则说明少了必要的东西,也是损坏了。
二、 修复的方法
- 自动修复,微软官方提供了工具,这里下载
- 手动修复, 执行命令行 netsh winsock reset ,然后重启,即可。
[
阅读全文 ]IE不能显示PNG图片的解决方法
因为某种不可告人的需要,安装了Adobe Flash CS4,安装后,发现出现了一个奇怪的问题
用IE浏览网页时,很多网站莫名其妙的出现了红色的叉叉,有部分图片不能显示,但不是全部。
而换用其他的浏览器则正常。查这些不能显示的图片,发现都是png图片,保存到本地,用XP默认的图片查看器,又可以正常查看。
毫无疑问,问题出在了IE上
。
因为对PNG图片格式的诞生,有些许了解,所以定位问题的原因,对我来说就相对简单了。
PNG图片格式,是因为GIF图片的版权关系,而诞生的。
而 微软 不知是处于什么原因,对PNG一直不太友好(也许GIF格式的作者和微软有一腿,嘿嘿
) ,直到IE6,都没有很好的支持PNG格式的图片。
而且,在IE里,对PNG图片格式的支持,本身也有别于其他的图片格式,例如:JPG,GIF,BMP等。对于PNG图片的支持,是采用了额外的动态链接库的方式,这个链接库,叫 pngfilt.dll ,IE使用这个链接库来进行PNG图片的显示,实际是解码工作。
pngfilt.dll 位于 System32 目录下,有兴趣的朋友,可以自己去看看它的属性,可以看到如下的信息:
阅读全文 ]Windows 7简体中文旗舰版 + 免刷BIOS自动激活补丁
免费的Windows虚拟桌面软件 — VirtualWin
在 虚拟机 软件大行其道的今天,可能关注虚拟桌面软件的人,已经不多了。今天,我还是要推荐一下这个虚拟桌面软件,VirtualWin。
所谓虚拟桌面软件,就是指,可以自己定制多个桌面, 然后利用软件切换显示其中的一个。这种软件,可以提高定位程序的效率,提高操作度。
VirtualWin,目前可以支持到9个虚拟桌面,而大小只有400KB,绿色免安装。
[
阅读全文 ]

