我的一位同事推荐了下面的代码为年度函数(Function of the Year),他也是第一个报告Windows Beta版本使用了一个值得怀疑的URL的人。我不得不承认,这段代码确实令人印象深刻。和所有其他检查操作系统版本的方法相比,通过检测内存映射文件里的未公开实现细节来判断操作系统版本,确实是非常具有创造性。

请看代码

windowsnt详解(一种最奇怪的检测Windows)(1)

请不要诧异,这段函数并没有关闭映射文件句柄,并在你每次调用此函数时,会导致泄露了两个句柄资源和视图。

此外,如果内存管理器碰巧将第二个文件视图分配给下一个 64K 内存块,则此函数可能会在 Windows NT 机器上错误的报告FALSE。(它确实可以这样做,因为地址空间的颗粒度为64KB)

如果 MAIN.CPL 文件恰好小于 64K,或者如果你对该文件没有写权限,它也可能在 Windows 95 机器上错误地报告 TRUE。 (请注意,该程序请求对 MAIN.CPL 文件进行读写访问。)

另外,这段代码被许多流行的多媒体的标题栏使用。

检测一台电脑正在运行的是Windows 95系列还是Windows NT系列,最快捷的方法就是使用咱们的老朋友GetVersion这个函数,如下图所示:

windowsnt详解(一种最奇怪的检测Windows)(2)

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。本文来自:《The strangest way of detecting Windows NT》

最近我写了个东西

正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。我想:你值得拥有。

windowsnt详解(一种最奇怪的检测Windows)(3)

,