当前位置:  技术问答>linux和unix

Windows系统的dos内部版本号的研究与疑问

    来源: 互联网  发布时间:2014-12-25

    本文导语:  int 21h 0x3000(V2+) 和0x3306(V5+) 功能都可以取dos版本号。 分别在real dos 6.22 /win95 /win98/ win98se /winMe/win2000/winXP/OS2下调用这两个中断服务。得到的结果如下           0x3000    0x3306 dos6.22   6.22      6.22 win95...

int 21h 0x3000(V2+) 和0x3306(V5+) 功能都可以取dos版本号。
分别在real dos 6.22 /win95 /win98/ win98se /winMe/win2000/winXP/OS2下调用这两个中断服务。得到的结果如下

          0x3000    0x3306
dos6.22   6.22      6.22
win95     7.0       7.0
win98/SE  7.1       7.1
WINME     8.0       8.0
WIN2000   5.0       5.5
WINXP     5.0       5.5
OS2       10.00     10.01  

问题在于
一、是否所有NT技术WINDOWS的两个结果都不一样,希望测试WINNT3.51 WINNT4.0。
二、是否存在一个系统的版本号是9.0.
三、希望测试XENIX的DOS模拟块的版本号。

给出实测结果后加分

|
一般DOS程序都用INT21h/AH=30h来得到DOS版本号,以判断程序运行的环境,这是保证程序正确运行的措施。不幸的是,有些程序的版本判别过于严格了,这使得它们在一些未知版本的DOS下无法运行,虽然事实上它们可以毫无问题地在这些版本的DOS上执行。例如,有些DOS程序要求DOS主版本号在5和6之间,否则就退出,不予运行,那么它们在DOS7.0上就拒绝工作。
为了解决这个问题,Microsoft在DOS5.0以后(不是很确定)提供了一个setver程序,它维护一张程序->DOS版本号映射表,如果表中的程序调用INT21h/AH=30h来获取DOS版本号,DOS就把表中与之对应的版本号提供给程序,可以称之为假版本号。利用setver,就可以使一个版本要求严格的程序运行在未知DOS版本下,但是前提是,这个程序确实能在此版本下正确工作。
但是解决了老问题,却引入了新问题。有一些程序,如与系统紧密相关的底层操作程序,确实需要严格的版本检查。你随意用setver欺骗它,会导致程序甚至系统的崩溃。于是,Microsoft加入了一个的DOS API:INT21h/AX=3306h,它提供的功能是:取得DOS真实版本号。它个是DOS的真正版本,用setver也欺骗不了的。

================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
★  支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名  ●  
     可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]

    
 
 

您可能感兴趣的文章:

  • windows gvim疑问
  • 关于Emacs缓冲区知识的一些疑问,请教各位高手(用的编辑器是Emacs for windows)
  • VMware有Linux版本和Windows版本吗?
  • x-windows如何安装在linux(rdehat9)上面呢,是不是x-windows也分windows和linux版本的吗?
  • 请问有没有在Windows环境下使用的Emacs和Vi版本下载?
  • Nginx的Windows移植版本 Ngwsx
  • 有谁知道Qt for Windows 的版本在哪里下载吗?
  • qt库的windows版本有源代码的吗?
  • Traceroute的Windows移植版本 ftrace
  • 请问如何编译GTK+的windows版本
  • AIX UNIX有能安装在windows下vmware的版本吗 ?
  • 不同windows版本连接linux的差异?
  • WEBLOGIC5.1有WINDOWS版本吗?
  • QT4.0 OpenSource版本开发Windows程序,如何进行静态链接?
  • 刚学Linux,请问如何安装支持在windows分区上安装的版本?
  • 求windows2003各个版本的cd-key,特别是Standard Server版的有效cd-key!!!急用!!!
  • 在linux(red hat 9.0)下可以直接安装windows版本的oracle8.17可以吗??
  • 介绍下速度快而应用功能齐全的LINUX版本,忍受不了windows的低速了……应用即可,最好带X。
  • windows下vb开发的版本的软件,现在移植到linux下,一系列问题,大家帮忙,谢谢
  • 高分求Source Insight 3.0以上版本的中文帮助或说明!另:能不能在Windows下直接使用SI编译C++工程?如能,该怎么做?谢谢!
  • 听说微软以后版本的Windows不支持Java,我这个初学者应该怎么办?
  • REDHAT LINUX7.X以上版本中的MOZILLA 浏览器浏览ActiveX 的 Windows Media PLAYER 6.4播放器控件
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.awt.event类keyevent的类成员方法: vk_windows定义及介绍
  • 怎么在Linux下改windows系统文件啊,我把windows的BOOT.INI改了,windows启动不了
  • WinDows8最新版文件夹加密
  • linux和windows串口问题!?linux向windows端发送,第一次write正常,继续write,windows接收到的就变成乱码了,这是什么原因??????
  • 修改Windows硬盘分区名称
  • 装了Linux和Windows,怎样默认进入Windows
  • windows10玩游戏怎么样?唯一支持DirectX 12的windows
  • Linux与windows共存时,如何将Windows设置为默认启动系统?
  • windows/windows 7/windows 8 下打开查看、修改及保存超大(GB级)文本文件及其它类型文件的工具-PilotEdit
  • 怎样是编好的java application在windows上像windows应用程序一样直接运行
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • windows 和linux双系统,重装windows后,无法启动linux?
  • Docker宣布支持Windows 10和Azure Windows Server
  • 如何将linux的一台机器加入windows 2000的域?并且通过一windows的机器上网?
  • win7/Windows7系统下载地址搜集整理
  • 为什么在安装了WINDOWS和LINUX的电脑上,重装WINDOWS会破坏MBR?
  • Windows7自带防火墙设置:启动,关闭及高级设置
  • Linux + Windows2000 双启动,Windows2000起不来了,说是文件被破坏,进来看看……
  • IE11设置IE兼容性视图及提升Windows 8.1中IE11兼容性的相关设置
  • Linux和Windows2000双系统(为什么Windows2000中打开我的电脑非常慢?)
  • Windows优化大师最新版 V7.99 Build 12.604发布
  • AIX 5.3下调用windows 2000上的exe程序,且AIX下需要得到windows下程序执行的返回结果


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3