符号链接和“notepad.exe”的乐趣(替换 Windows 7 中的默认记事本应用程序)

符号链接和“notepad.exe”的乐趣(替换 Windows 7 中的默认记事本应用程序)

我想将我的默认记事本程序从 更改notepad2notepad++(但我的问题比这更复杂,所以请不要停止阅读!)几个月前,当我将 更改为 时notepadnotepad2我并不知道符号链接,所以我只能手动替换可执行文件本身(有关如何在没有符号链接的情况下执行此操作的详细信息,请参阅脚注)。现在我明白了,我想使用符号链接来实现这个目的,因为每当 的新版本notepad++发布时,不必手动更新可执行文件,这真的非常好。

然而,Windows 正在破坏我的计划!基于以下三个观察,我们可以得出结论,Windows 7 将自动重定向(即劫持!)notepad.exe位于三个默认文件夹之外的任何文件或符号链接:

  • 如果我们创建一个名为的符号链接,notepad++.exe该链接位于C:\(即,在三个默认文件夹之外)并链接到原始 Notepad++ 可执行文件 --> 然后双击 Windows 资源管理器中的符号链接将导致 Notepad++ 打开(太棒了!)
  • 但是如果我们创建尝试同样的事情,除了给我们的符号链接命名notepad.exe(即,这个链接也硬链接回 Notepad++ 可执行文件)--> 双击它会导致 Notepad2 打开(wat)
  • 此外,如果我们创建 Notepad++ 可执行文件的副本(即不是符号链接而是文件本身的副本.exe)并将其重命名为notepad.exe--> 双击此文件也会打开 Notepad2(wat)

如您所见,我的目标是在正确的系统文件夹中创建符号链接之前,先在单独的文件夹中测试符号链接。我的问题分为两部分:

  • 鉴于上述行为,是否有使用符号链接进行更改(在脚注中描述)的特殊过程?
  • 有没有什么方法可以禁用操作系统的绰号行为notepad.exe

脚注:为了便于理解,更改 Windows 7 中的默认记事本应用程序涉及交换notepad.exe三个文件夹中的可执行文件:C:\Windows\C:\Windows\System32以及(如果您使用的是 64 位系统)C:\Windows\SysWOW64\。(首次进行更改时,我们还需要执行一些步骤来授予权限,但这与此无关。)

答案1

好的,明白了;这是我第一次回答自己的问题!

为了使这篇文章成为一篇有用的独立文章,我将包含有关如何替换的“从头开始”的说明notepad。开始吧!

  1. “你不备份那个应用程序吗?”

    • 我们需要更新三个相关文件夹notepad.exe(如果你使用的是 32 位 Windows 7,则需要更新两个):,C:\Windows\如果C:\Windows\System32你使用的是 64 位系统,C:\SysWOW64\
    • 让我们备份现有版本的记事本。在新文件夹中Notepad Backup(或者如果您愿意,可以命名为更有创意的名称),notepad.exe从每个相关文件夹(上面列出)复制并粘贴可执行文件。我已重命名我的文件夹;例如,原始的可执行文件在我的备份文件夹中C:\Windows\命名为。notepad-CWindows.exe.BAK
  2. “将旧应用程序扔到路边”

    • 首先,我们需要在相关文件夹中授予我们自己的正确权限。我们可以在每个实例notepad.exe即,我们必须在 Windows 7 32 位中执行两次,在 Windows 7 64 位中执行三次):

      (i)右键单击notepad.exe(当然是在 Windows 资源管理器或我的电脑中),

      (二)点击Properties

      (iii)导航到Security选项卡并点击Advanced窗口底部的按钮,

      (iv)导航至Owner选项卡并点击Edit

      (v)选择您的用户名(或者您可以选择Adminstrator并点击Okay

      (vi)从下拉菜单中选择您的姓名并单击Okay两次,

      (此时您应该看不到与 相关的更多窗口Properties),再次右键单击notepad.exe,(vii)Security再次导航到选项卡,从框中选择您的姓名Group or user names(窗口上半部分),

      Allow(viii)选中部分(窗口下半部分)旁边的复选框;完成此操作后,和Permissions for Administrators旁边的复选框也应被选中ModifyWrite

      (ix)单击Okay,然后Yes如果 Windows 警告您有关更改权限,请单击 (因为我们做了我们想做的事情!)

    • 对其他相关文件夹中的另外两个实例分别执行 (i) 到 (ix) 的操作notepad.exe(如果您使用的是 32 位 Windows 7,则需要另一个实例)。

    • 现在我们已经授予自己权限来按照我们的方式处理它,让我们删除每个实例notepad.exe(即从每个相关文件夹中)。

  3. “你是一个很好的符号链接,你不会备份那个应用程序吗?”

    • 由于某些原因,Windows 7 没有提供用于创建符号链接的内置图形实用程序(我尽量避免下载第三方应用程序),所以让我们启动cmd.exe它。我们需要以如下方式启动它Adminstrator:单击Start按钮,cmd在搜索框中输入内容,右键单击cmd.exe,然后单击Run as administrator
    • 创建符号链接的命令名为mklink(您可以输入全部大写字母,但我尽量避免在可能的情况下对着电脑大喊大叫),其格式如下mklink /h "<Path:\To\New\Link.exe>" "<Path:\To\Source\File>"。 (/H 选项确保我们创建正确类型的链接。) 注意:如果您更喜欢使用Powershell,则必须在命令前面加上cmd.exe /c(例如,cmd.exe /c mklink /h...)
    • 对我来说,该命令如下所示: 。请注意,我们在键入命令时 mklink /h "C:\Windows\notepad.exe" "C:\Program Files (x86)\Notepad++\notepad++.exe"不需要使用<或。>
    • 现在,再次对另外两个相关位置(如果是 32 位,则为一个)运行该命令。

就是这样!如果您点击,在搜索框中Start输入并按下(无需等待搜索结果弹出),它应该会打开您的新记事本应用程序。notepadEnter

我知道这很详细,但我希望以我第一次经历这个过程时所希望的详细程度来写这个...如果它听起来像“微观管理”,那么很抱歉!

现在我们进入最重要的一步:是时候庆祝我们的胜利了,he-who-must-not-be-notepad去 YouTube 观看 Juvenile 90 年代的热门影片,这部影片启发了我们写这篇文章(当然,需要家长指导)。

相关内容