none
为什么在windows10系统嵌入的mshtml控件是MSIE 7.0? RRS feed

  • 问题

  • navigator.userAgent显示是msie 7.0 windows nt 6.2 Trident 7.0。

    Trident版本是对的,但是为什么不是msie 11.0,关键是操作系统版本不对。

    2016年1月4日 7:43

全部回复

  • Hi heroboy_ywq

    不太确定你win10系统上面使用的是什么版本的IE,如果是IE11, User-agent string已经发生改变,不包含MSIE这个字段, 详细信息你可以查看这个链接https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx 

                    >>navigator.userAgent显示是msie 7.0 windows nt 6.2 Trident 7.0

                不太确定你使用的模式是否是兼容模式?如果你的Trident = 7.0 ,那么它所代表的描述信息是IE11,如果是IE11就不会有MSIE这个字段,具体信息你可以看这个链接里的Trident token部分https://msdn.microsoft.com/en-us/library/ms537503%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

                    这个论坛是C++软件开发论坛,如果你想知道更多关于Windows 10的信息,你可以去这个地方:http://answers.microsoft.com/en-us/search/search?SearchTerm=windows&IsSuggestedTerm=false&tab=&CurrentScope.ForumName=Windows&CurrentScope.Filter=windows_10&ContentTypeScope=QnA%2CDiscussion%2CWiki#/Windows/windows_10/QnA,Discussion,Wiki/1

    2016年1月5日 7:35
    版主
  • 找到原因了,在win8.1和win10上面,如果你不显式指定支持win8.1或win10的话,就告诉你操作系统版本是6.2(win8)。

    https://msdn.microsoft.com/en-us/library/windows/desktop/ms724451%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

    https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241%28v=vs.85%29.aspx

    但是,请问你知道“ include _NT_TARGET_VERSION=$ (_NT_TARGET_VERSION_LATEST) in the source file.” 是什么意思嘛?哪个source file?cpp?

    2016年1月6日 4:00
  •               根据你的描述,原来的问题已经解决,关于这个新的问题,我建议你去重新开帖. 这是个C++软件开发的论坛,如果你想问更多关于windows 系统的信息,你可以去这个地方,找到对应的论坛发帖,将会有工程师帮你解答

                    http://answers.microsoft.com/en-us/search/search?SearchTerm=windows&IsSuggestedTerm=false&tab=&CurrentScope.ForumName=Windows&CurrentScope.Filter=windows_10&ContentTypeScope=QnA%2CDiscussion%2CWiki#/Windows/windows_10/QnA,Discussion,Wiki/1

    2016年1月6日 9:45
    版主
  • 我不觉得这是一个纯windows的问题啊。而且这也不是一个windows10的问题,从8.1开始就有的问题,所以也不能贴到专门的windows10开发的论坛上。关键是论坛上已经有很多很多关于windows开发的问题和讨论啦。

    我后面想问的问题就是,怎么在Visual C++中做到上面文章说的“ include _NT_TARGET_VERSION=$ (_NT_TARGET_VERSION_LATEST) in the source file.”?

    只要和windows版本有关的msdn页面下面的评论都要爆炸了,你们都不管一管吗,不回答一下他们的问题吗?


    yi,你的分数是0,刚刚上岗么。论坛的其他版主,说话都非常客气,虽然我不说但是觉得非常佩服。我怎么觉得你老是在赶我走啊。
    2016年1月7日 12:27
  • 我不觉得这是一个纯windows的问题啊。而且这也不是一个windows10的问题,从8.1开始就有的问题,所以也不能贴到专门的windows10开发的论坛上。关键是论坛上已经有很多很多关于windows开发的问题和讨论啦。

    我后面想问的问题就是,怎么在Visual C++中做到上面文章说的“ include _NT_TARGET_VERSION=$ (_NT_TARGET_VERSION_LATEST) in the source file.”?

    只要和windows版本有关的msdn页面下面的评论都要爆炸了,你们都不管一管吗,不回答一下他们的问题吗?


    yi,你的分数是0,刚刚上岗么。论坛的其他版主,说话都非常客气,虽然我不说但是觉得非常佩服。我怎么觉得你老是在赶我走啊。

    对于你后面想问的问题,我理解上出现错误,给你带来麻烦,我表示歉意!

    visual studio 中是可以通过添加manifest文件来确定OS的版本信息,manifest 文件是一个XML文件,XML文件的结构可以参考这个https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241(v=vs.85).aspx  , 你可以先通过这种方式来完成OS版本信息的确定。至于在哪个地方添加

    _NT_TARGET_VERSION $(_NT_TARGET_VERSION_LATEST)这个句话,我还在探索之中,不太确定我理解对不对。

    https://social.msdn.microsoft.com/Forums/sqlserver/en-US/cd11cbc7-16da-48b4-ad96-9c274baec7d9/manifesting-for-windows-81-in-sources-file?forum=vcgeneral  这个链接里面有说在Configuration Properties->C/C++->Preprocessor->Preprocessor Definitions 这个地方添加的,但是我不能确定,是否能解决你的问题,你可以尝试一下,希望对你能有所帮助,如果有用请告诉我

    谢谢

    Hart Cheng
    2016年1月8日 8:36
    版主
  • 其实当我知道用manifest文件可以解决问题之后,基本上问题就解决了,网上搜一搜,自己试验一下总可以解决的。就像前面的问题,其实assemblyIdentity标签不写,或者乱写都是可以了,估计windows是对win32是验证assemblyIdentity的。

    但是,按照流行的话来说,“我不是为了解决问题,我就是认真”。我就是想知道,怎么在win32程序中指定自己的

    SXS_ASSEMBLY_NAME等信息。就是想知道完整的manifest文档有吗,相应的xsd有吗。

    根据现在我搜索下来的结果就是这件事只有微软自己知道。

    2016年1月11日 1:38
  • 其实当我知道用manifest文件可以解决问题之后,基本上问题就解决了,网上搜一搜,自己试验一下总可以解决的。就像前面的问题,其实assemblyIdentity标签不写,或者乱写都是可以了,估计windows是对win32是验证assemblyIdentity的。

    但是,按照流行的话来说,“我不是为了解决问题,我就是认真”。我就是想知道,怎么在win32程序中指定自己的

    SXS_ASSEMBLY_NAME等信息。就是想知道完整的manifest文档有吗,相应的xsd有吗。

    根据现在我搜索下来的结果就是这件事只有微软自己知道。

        非常抱歉,我不是这个写文档组的成员,对于文档里面的这句话"_NT_TARGET_VERSION=$ (_NT_TARGET_VERSION_LATEST)" , 我需要去相关的组去询问一下,有什么最新的情况我会第一时间通知你。
    2016年1月11日 10:00
    版主