【MySQL|一种最奇怪的检测Windows NT系统的方法】
文章图片

我的一位同事推荐了下面的代码为年度函数(Function of the Year) , 他也是第一个报告Windows Beta版本使用了一个值得怀疑的URL的人 。
我不得不承认 , 这段代码确实令人印象深刻 。 和所有其他检查操作系统版本的方法相比 , 通过检测内存映射文件里的未公开实现细节来判断操作系统版本 , 确实是非常具有创造性 。
请看代码
请不要诧异 , 这段函数并没有关闭映射文件句柄 , 并在你每次调用此函数时 , 会导致泄露了两个句柄资源和视图 。
此外 , 如果内存管理器碰巧将第二个文件视图分配给下一个 64K 内存块 , 则此函数可能会在 Windows NT 机器上错误的报告FALSE 。 (它确实可以这样做 , 因为地址空间的颗粒度为64KB)
如果 MAIN.CPL 文件恰好小于 64K , 或者如果你对该文件没有写权限 , 它也可能在 Windows 95 机器上错误地报告 TRUE 。(请注意 , 该程序请求对 MAIN.CPL 文件进行读写访问 。 )
另外 , 这段代码被许多流行的多媒体的标题栏使用 。
检测一台电脑正在运行的是Windows 95系列还是Windows NT系列 , 最快捷的方法就是使用咱们的老朋友GetVersion这个函数 , 如下图所示:
最后Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一 , 里面有很多关于Windows的小知识 , 对于广大Windows平台开发者来说 , 确实十分有帮助 。
本文来自:《The strangest way of detecting Windows NT》
相关经验推荐
- MySQL|Redmi K40 游戏增强版参数评价如何?K50即将发布是否等待?
- 三星|2022年2月即将发布的三星S22系列中,有一种你没有见过的配色出现
- MySQL|骁龙870+120Hz!OPPO首款平板来了
- MySQL|中国芯片黑马击败高通,从山寨机到全球第一,一年进账1136亿
- 三星手机|卷积神经网络,是一种特定类型的ANN,通常基于具有多个算法来分析数据
- MySQL|“百元机皇”复活?红米最强对手重启,搭载国产芯片,售价699元
- MySQL|魅族19系列配置曝光,那是非常值得期待的
- MySQL|旗舰背后故事!1亿像素超清摄影+骁龙778G,你认为它适合什么人
- iOS|时隔一年半《堡垒之夜》下周终于要回归iOS平台,以另一种形式
- 显卡|畅玩1080P的另一种选择RTX 3050 Ti,价格和性价比详细分析!
