如何添加键盘快捷键以从文件资源管理器打开文件夹上的 VS Code?

How do I add a keyboard shortcut to open VS Code on the folder from File Explorer?

我希望能够在文件资源管理器中的任何文件夹中按 . 并打开该文件夹中的 Visual Studio 代码。它与右键单击并单击“使用代码打开”的效果相同。按 . 就像我在 GitHub 网站上所做的一样。

这可能无法正式实现,但是否有任何变通方法可以让它发挥作用?

最大的问题是从 windows 资源管理器获取当前位置。这需要一些逆向工程来获取 windows explorer 存储位置的内存地址。如果由于任何原因此地址发生变化,您将需要重新找到它。

除此之外,windows 支持全局键盘挂钩。所以你想为你的 . 键设置一个全局键盘钩子。 windows API 还提供了获取活动 window 的方法。因此,每当按下 . 键时,您都可以检查活动 window 是否是浏览器 window。然后您将从资源管理器 window 的内存中读取当前文件夹。之后你就拥有了开始 visual studio 代码所需的一切。

这很老套,但我想这是您唯一的选择。研究主题是:

  • 键盘记录器 - 这些例如使用我提到的全局挂钩
  • 通用逆向工程 - 在 windows 资源管理器
  • 中查找当前位置的地址

编辑Autohotkey post 关于如何获取 windows 资源管理器位置。如果这像人们声称的那样有效,autohotkey 也可以用于为 . 键注册一个钩子并启动 VS 代码。

我有个绝招

创建 vs.bat 并在其中写入此代码

@echo off
code %cd%

并将此文件移动到 C:/Windows/System32/

现在一切就绪。

如果您在资源管理器的地址栏中键入 vs,您的 vs 代码和当前文件夹将会打开

感谢@AdrAs 和@SarvinR 的回答。我使用 Sarvin 的解决方案一段时间,同时尝试 google 并理解 Adr 的解决方案。如果你不想下载任何外部程序,Sarvin 的解决方案非常有用,但如果你想要这个问题的真正解决方案,我终于在这里解决了:

下载AutoHotKey。如果你熟悉它就好了。 AHK 基本上像 Adr 描述的那样创建热键(或快捷方式)。

(如果您已有使用的 ahk,则可以跳过这些步骤并复制下面的代码块) 通过 right-clicking 在您的桌面或文件资源管理器中的任何位置创建一个新的 AutoHotKey 脚本(我们稍后会移动它,所以这并不重要)。随意命名。对于这个答案,我将其称为 MyScript.ahk(实际上我自己使用 david.ahk)。

现在,打开命令提示符(win + rcmdenter)并通过键入 where code 查找 VSCode 的位置。它可能会给你两行。记下其中一行(我选择了最上面的一行)。

Right-click您刚刚创建的ahk脚本文件并选择Edit Script(或者您可以使用记事本++或VSCode或您选择的任何编辑器打开它,它只是一个普通的文本文件)。删除所有内容并将其粘贴到:

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

GetActiveExplorerPath()
{
    explorerHwnd := WinActive("ahk_class CabinetWClass")
    if (explorerHwnd)
    {
        for window in ComObjCreate("Shell.Application").Windows
        {
            if (window.hwnd==explorerHwnd)
            {
                return window.Document.Folder.Self.Path
            }
        }
    }
}

#IfWinActive ahk_exe Explorer.exe
.::
path := GetActiveExplorerPath()
run, "C:\Users\david\AppData\Local\Programs\Microsoft VS Code\bin\code" %path%
return

在倒数第二行,将 VSCode 位置替换为您刚刚在 cmd 中看到的内容。您很可能需要将用户名从 david 更改为您的姓名。

现在,保存文件并尝试打开它(双击 ahk)。如果成功,一个绿色的 H 图标应该出现在您的任务栏上,没有任何错误。进入 Windows 文件资源管理器中的任何文件目录,然后像通常在 GitHub 中那样点击 .。 (不要在根目录 C: 这样的大目录中执行此操作。VSCode 加载的文件太多)。它应该像预期的那样工作,如果没有,你做错了什么(我做了与我刚刚描述的完全相同的事情并且它有效)。

现在,当然,您会希望在启动时 运行 此脚本。 Copy/Move 将 .ahk 文件转换为 C:\Windows\System32。它会要求您提供管理员权限,因此单击“是”。打开注册表编辑器(win + rregeditenter)。导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run。在右侧窗格中,右键单击空的 space 然后创建一个具有任何名称的新字符串值(我使用 davidAHK)并将其值设置为您刚刚 copied/moved 的 ahk 文件带引号("C:\Windows\System32\david.ahk" 对于我的情况)。关闭注册表编辑器并安全地重新启动计算机。 ahk 脚本在启动时应该 运行 并且您应该能够在文件资源管理器中的任何目录中单击 . 以打开 VSCode.

再次感谢@AdrAs 和@SarvinR 的帮助!