标签

标签 ‘windows’ 的存档

[C#]Windows API声明中的数据类型与.NET数据类型之间的对照关系

2010年8月26日

C#设置系统时间、捕获系统时间更改的通知

2010年8月1日

今天,有网友提问:

C# 如何更改系统的时间?

所以写了这篇博文。要实现的功能包括2点:

  1. 修改系统时间
  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);
        }
    }
}

 

 

就是这样了,有问题,欢迎交流,

[ more 阅读全文 ]

API, C#, VB.NET , , , , , ,

诊断系统的Winsock2是否损坏以及修复的方法

2010年7月11日

Winsock / Winsock2 是Windows系统中,TCP相关网络应用的核心。如果Winsock2损坏、被破坏,那么就会出现可以PING通,可以上QQ,但是不能浏览网页,不能使用FTP等的情况。

本文,说明一下如何诊断Winsock2是否已经损坏,以及如果损坏了,如何修复的情况,适用于 XP Sp2 及更高版本的系统。

 

一、 Winsock2是否损坏的诊断

 

  1. 单击“开始”,单击“运行”,键入“Msinfo32”,然后单击“确定”。
  2. 依次展开“组件”和“网络”,然后单击“协议”。
  3. “协议”下将显示如下信息。如果 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...
  4. 如果安装了 NWLink IPX/SPX 协议,还会有 MSAFD nwlnkipx [IPX] 类似的项。
  5. 但是,有一点是确定的: 微软自带的项,除了2个 RSVP 开头的外,其他的都是以 MSAFD 开头的。如果发现其他的,则说明是有其他的东西被安装了(有可能是病毒,也有可能是代理软件之类的),如果项数少于 上面的10项,则说明少了必要的东西,也是损坏了。

 

二、 修复的方法

 

  1. 自动修复,微软官方提供了工具,这里下载
  2. 手动修复, 执行命令行   netsh winsock reset ,然后重启,即可。

 

[ more 阅读全文 ]

微软, 系统维护 , , ,

IE不能显示PNG图片的解决方法

2010年6月24日

因为某种不可告人的需要,安装了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 目录下,有兴趣的朋友,可以自己去看看它的属性,可以看到如下的信息:

ie png图片 pngfilt.dll

[ more 阅读全文 ]

ie, 浏览器, 系统维护 , , , , , , ,

Windows 7简体中文旗舰版 + 免刷BIOS自动激活补丁

2010年1月26日

windows7 windows 7 简体中文旗舰版

 

Windows 7 已经发布了一段时间了,今天又有朋友问我下载地址,于是乎我干脆发布出来吧。

[ more 阅读全文 ]

Windows 7, 微软, 破解 , , , , , ,

免费的Windows虚拟桌面软件 — VirtualWin

2009年12月31日

image_thumb

虚拟机 软件大行其道的今天,可能关注虚拟桌面软件的人,已经不多了。今天,我还是要推荐一下这个虚拟桌面软件,VirtualWin

所谓虚拟桌面软件,就是指,可以自己定制多个桌面, 然后利用软件切换显示其中的一个。这种软件,可以提高定位程序的效率,提高操作度。

VirtualWin,目前可以支持到9个虚拟桌面,而大小只有400KB,绿色免安装。

[ more 阅读全文 ]

小软推荐, 系统维护 , , ,