每次您在文件资源管理器中输入错误术语时,它都会自动劫持并打开浏览器,以为您想要搜索网络。这无疑是最烦人的“功能”,而且我无法在 Google 上找到任何解决方案来告诉如何阻止这种情况发生。我不想在文件资源管理器中意外输入“文档”,结果却触发从我上次停下的地方打开 50 个选项卡的浏览器。实际上没有人像这样使用资源管理器。是否有注册表开关可以关闭此功能?
答案1
简短的回答:目前还没有已知的解决办法。
详细回答:我们知道如何 在“开始”菜单中禁用网络搜索,但这不适用于文件资源管理器。
可能的方法
我使用 Process Monitor 进行跟踪explorer.exe
,发现它会查询注册表中为用户注册为 URL 处理程序的浏览器程序。然后它会在添加参数的同时运行该程序"http://entered-text/"
。(从这http:
部分我们可以了解这个 Explorer 代码有多老了。)
可以通过黑客手段阻止 Explorer 调用浏览器,只需挂接 ProcessCreate 系统调用
explorer.exe
,然后不执行任何操作,实际上就是使调用无效。
很多产品都使用了这种挂钩技术。例如, 沙盒 大量挂钩并修改许多系统调用以便为所有正在运行的进程(而不仅仅是一个进程)创建沙盒效果。
此类钩子的一些有用示例如下:
-
Detours 是一个用于重新路由应用程序底层 Win32 API 的软件包。近二十年来,它已获得数百家 ISV 的许可,并被 Microsoft 的几乎每个产品团队使用。
-
拦截和跟踪进程执行是一种非常有用的机制,可用于实现需要操纵外部进程的类似 NT 任务管理器的应用程序和系统。在启动新进程时通知相关方是开发进程监控系统和系统范围挂钩的经典问题。Win32 API 提供了一组很棒的库(PSAPI 和 ToolHelp [1]),允许您枚举系统中当前正在运行的进程。虽然这些 API 非常强大,但它们不允许您在新进程启动或结束时收到通知。本文提供了一种基于文档化接口的高效且强大的技术来实现此目标。
答案2
支持的方法
Windows、Windows 资源管理器或搜索索引器中没有用于禁用此集成的选项或设置。因此,没有支持的方法来禁用浏览器外壳集成。没有可以引用的来源,因为微软(以及几乎所有其他公司)没有记录不存在的功能的习惯。
不支持的方法
有一些众所周知的方法可以禁用此功能。
微软 Power Toys不包含任何禁用此功能的设置。
对于其他不受支持的方法,您可以使用 sysinternals 中的进程监视器来监视 Explorer.exe,以尝试找到可以操作的注册表设置。以下是原始研究。
当您在 Windows 资源管理器的地址栏中输入错误的路径时,Explorer.exe 会创建数以万计的活动。其中大部分涉及搜索计算机的默认搜索路径,例如路径环境变量、桌面、文档、网络位置、连接的外部驱动器等。
当在这些默认搜索路径中找不到匹配项时,Explorer 将检查以下注册表项是否存在以下值:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellCompatibility\Objects\{BDEADF00-C265-11D0-BCED-00A0C90AB50F}\
OTNEEDSSFCACHE
NO_WEBVIEW
NO_WEBVIEW
UNBINDABLE
PINDLL
NEEDSFILESYSANCESTOR
NOTAFILESYSTEM
CTXMENU_NOVERBS
CTXMENU_LIMITEDQI
COCREATESHELLFOLDERONLY
NEEDSSTORAGEANCESTOR
NOLEGACYWEBVIEW
CTXMENU_XPQCMFLAGS
NOIPROPERTYSTORE
WEBVIEW
这些值包含用于禁用或更改 Windows 资源管理器 shell 功能的设置项。例如,您可以看到用于配置和上下文菜单处理程序的选项。如果有任何方法可以禁用浏览器 shell 集成,那么它就在这里。
然而,这些价值观不是微软没有记录任何内容。没有记录什么种类每个注册表值都是。以任何方式更改它们都可能破坏或损坏您的 Windows 安装。如果您成功禁用浏览器外壳集成,则可能会破坏许多其他功能,例如图像缩略图或文档预览(如果您很幸运并且没有完全破坏系统)。
在我的测试中,这些键被禁用,不执行任何操作。(从技术上讲,使用任何值(包括空值)创建这些键都会导致缓冲区溢出explorer.exe
,但可以妥善处理。将变量的最大长度设置为-1
是禁用生产软件版本中的测试功能的常用方法。)
检查完上述键后,Explorer 会检查您的默认 HTTP 处理程序,并开始将错误输入的路径发送到您的默认浏览器。此时,没有办法阻止 Explorer 打开您的浏览器,除非使用默认浏览器 - 否则会破坏 Windows。
任何进一步的调查都会涉及调试工具和破解 Windows 系统文件,此时我们远远超出了超级用户的范围。
因此,没有不受支持的方式来禁用此功能。此功能是 Windows 资源管理器外壳集成的一部分,并硬编码到 Windows 资源管理器中。(自 Internet Explorer 4.0 和 Windows 98 Active Desktop 以来一直如此!)
一种解决方法是创建一个带有错误名称的文件或文件夹。如果您创建硬链接,则可以将错误的名称重定向到正确的名称。但是,为每个可能的拼写错误设置所有这些会很繁琐。
另一个解决方法是使用完全不同的 shell。我很喜欢轻型航空器和导弹防御系统,但就目前情况而言,它并不是功能最强大、用户最友好的。
唯一的其他解决方法是使用强制从操作系统中删除所有面向互联网的功能的 Windows 版本。几年前,Linus Tech Tips 制作了一个关于此类选项的视频。使用这些软件非常危险,而且微软当然不支持。这些类型的“精简版”Windows 安装非常不稳定,容易崩溃,可能感染恶意软件(取决于来源),并可能导致数据丢失、身份盗窃或更糟的情况。
关于安全
由于有人在评论中提到了安全性,因此值得谈一下这一点。
搜索历史记录中的文件或文件夹名称不会将您的计算机暴露给恶意软件、入侵甚至网络钓鱼攻击。存储在搜索引擎数据库中的文件或文件夹名称不会将您或您的任何个人身份信息暴露给任何恶意或良性行为者。通过互联网将这些文件或文件夹名称发送到搜索引擎不会将它们暴露给任何恶意或良性行为者 - 即使在中间人攻击的情况下也是如此。
Bing 搜索历史记录仅对使用 Microsoft 帐户(或 Google 搜索的 Google 帐户)登录的用户在线保留。如果没有这样的帐户,搜索历史记录将保存在您的计算机本地,存储为 Cookie 文件,该文件很容易被清除。
如果你拥有 Microsoft 帐户,并且已登录 Edge,并且启用了 Bing 中的搜索历史记录,则拼写错误发送到网络搜索引擎的文件或文件夹名称并不构成安全风险。即使正确输入的文件夹和文件名称也不会构成安全风险。(除非您将银行帐号放在文件中姓名,此时你 是安全风险。
最糟糕的是,这是一个隐私风险,微软为你提供了足够的灵活性来配置隐私设置视窗和必应。Microsoft 的隐私政策也是大型科技公司中较为稳健的公司之一。
答案3
你不能卸载 IE 吗?
禁用 Internet Explorer(Windows 10 和 Windows 11):
- 打开电脑上的“设置”应用程序。
- 转到“应用程序”或“应用程序和功能”。
- 在“应用和功能”部分,单击“可选功能”或“可选 Windows 功能”(措辞可能有所不同)。
- 向下滚动并在可选功能列表中找到“Internet Explorer 11”。
- 单击“Internet Explorer 11”以选择它,然后单击“卸载”或“卸载”按钮(措辞可能有所不同)。
- 出现提示时确认操作。
答案4
编辑
直到有人编写了一个黑客程序(正如对同一问题的回答)最可行的解决方法就是改变习惯,使用快速访问,您可以在其中通过右键单击上下文菜单固定常用文件夹:
对于任何不使用导航窗格的人,我建议使用打开一个新的资源管理器窗口,该窗口将默认显示快速访问项(默认视图可以在-> - > - > ->Win+E
中设置)。File
Change folder and search options
General
Open File Explorer to
Quick Access
旧答案
你是使用错误的工具对于你想做的事情:使用搜索框反而
地址栏是地址栏,不是搜索工具。它允许您输入任何类型的路径,本地、网络、ftp、https 等等。它被认为是粘贴路径,或者像在 Web 浏览器中一样开始输入。任何无法在文件资源管理器中直接打开的内容都会发送到浏览器。这在大型公司的内联网环境中是有意义的。此功能是内置的,无法禁用(正如其他人提到的那样 - 除非您想通过不设置默认浏览器来破坏任何应用程序中的任何超链接)。
要快速访问本地目录或文件,请使用文件资源管理器的搜索框
位于地址栏右侧。它只会提供已在您的 PC 上本地索引的内容。如果您输入错误,它不会给您任何结果。
在您输入时,搜索框将开始显示最接近的匹配项。例如,如果您开始输入“docume”,它将显示当前用户的文档文件夹作为第一个匹配项,然后是包含该字符串的任何其他文件夹或文件。