文章图片
我的一位同事推荐了下面的代码为年度函数(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》
【双十一|一种最奇怪的检测Windows NT系统的方法】
- 双十二|Web前端培训:一些常见的HTML代码验证器
- 三星|真安卓机皇诞生?103万跑分+双曲面2K屏幕,三星S22太激进了
- 人造肉|宇宙中是否存在一种全是水的星球,就像水珠一样漂浮在宇宙中?
- 美团|大量用户将被影响,蚂蚁作出重要决定,马云这招可谓一箭双雕
- 马里亚纳海沟|在马里亚纳海沟发现的10种神秘生物,其中一种像是来自地狱的声音
- 双十二|鸿蒙系统2.0正式版又开始推送了,这次包括荣耀8X等9款机型
- 双卡双待|为什么在欧美手机双卡双待并不是那么重要?主要原因无外乎这三点
- 旅行者|你永远不要碰这五种东西,每一种都是通向地狱的门票
- Win10|快IT电脑技术系列十一:Win 10注册表编辑器
- 笔记本|一加折叠屏手机专利曝光:双铰链可三屏折叠