【问题标题】:Understanding \ and \\ in Windows address bar, or How \ is internally interpreted in Windows?了解 Windows 地址栏中的 \ 和 \\,或者如何在 Windows 内部解释 \?
【发布时间】:2017-09-16 22:52:53
【问题描述】:

Windows地址栏中的\如何在点击回车后解析为%SYSTEMDRIVE%\,而/在地址栏中使用http:///打开Internet Explorer,而/{something}解析为使用http:///{something}打开Internet Explorer还是地址栏中的 www.{something}.com?

【问题讨论】:

  • 有什么问题?
  • 当您在 Windows 操作系统(在我的情况下为 Windows 7)上的 Windows 资源管理器的地址栏中键入 \(反斜杠)并按 Enter 键时,Windows 资源管理器会为您打开系统驱动器(通常是 C:\)。但是,当您在 Windows 资源管理器中输入 /(正斜杠),然后按 Enter 键时,它会将您带到 Internet。
  • 嗯,很高兴知道,但这不是问题。你期待什么样的答案?
  • Windows 如何在 Windows 资源管理器中将 \ 解析为 C:\? \ 是环境变量、内部常量还是其他什么?
  • 如何在 Windows 中对 \ 进行内部解释?

标签: windows windows-7 operating-system environment-variables reverse-engineering


【解决方案1】:

http:// 只是 Windows 资源管理器的一些奇怪逻辑;最有可能的是,如果它只看到正斜杠就假定它是一个 URL(因为正斜杠通常用于 Windows 上的 URL),但这只是 Windows 资源管理器启发式的一些极端情况,既不是合同也不是特别有趣。

从编程的角度来看,真正重要的是 Win32 API 如何处理路径;这在this often-referred-to MSDN page中有详细解释。

\ 在 Windows 中是如何进行内部解释的?

每个进程都有一个全局当前目录,在启动时设置并可通过SetCurrentDirectory API 更改; \ 被解析为当前目录的驱动器的根目录(并且以\ 开头的路径隐含地指向该驱动器)。

因此,如果 Windows 资源管理器的当前目录是 c:\Users\SomeUser\Desktop\ 将解析为 c:\

请注意,在 Win32 API 中在处理 Win32 路径时不是 UNC 路径)正斜杠 (/) 的解释方式与反斜杠 ( \),所以在“常规”Win32 程序中,从SetCurrentDirectory/ 将与\ 相同;如上所述,它只是 Windows 资源管理器解析器的一个选择,尝试将其用作 URL 的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 2014-06-23
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    相关资源
    最近更新 更多