You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Windows文件夹右键快捷方式启动Electron应用并获取触发文件夹路径

解决方案

问题根源

你当前配置的注册表command项仅指定了EXE路径,没有添加Windows右键菜单约定的路径占位符,因此系统不会将选中的文件夹路径作为启动参数传递给Electron应用,自然无法从process.argv中读取到对应值。

第一步:修改注册表配置

修改你之前创建的HKEY_CLASSES_ROOT\Folder\shell\Run In My Electron App\command项的默认值,格式调整为:
"你的EXE文件完整路径" "%1"

注意:所有引号均为英文双引号,EXE路径和占位符%1之间有空格。%1是Windows系统的约定占位符,代表当前右键选中的文件夹完整路径,加引号是为了适配路径含空格的场景。

如果需要同时支持在文件夹空白处右键启动(即不选中文件夹,直接在当前打开的文件夹空白区域右键触发),可以额外新增注册表项:

  • 定位到HKEY_CLASSES_ROOT\Directory\Background\shell
  • 按照之前的步骤新建Run In My Electron App项和下级command项
  • command的默认值设置为:"你的EXE文件完整路径" "%V"

第二步:Electron中读取路径

修改主进程代码即可从process.argv中读取到传递的文件夹路径,示例代码如下:

const { app, BrowserWindow } = require('electron')
let mainWindow

// 处理单实例锁,避免重复打开应用,同时处理多次右键启动的参数
const gotTheLock = app.requestSingleInstanceLock()
if (!gotTheLock) {
  app.quit()
} else {
  app.on('second-instance', (event, commandLine) => {
    // 读取后续右键启动传入的新路径
    const newFolderPath = commandLine.length >= 2 ? commandLine[1] : ''
    // 已有窗口时拉到前台并传递路径到渲染层
    if (mainWindow) {
      if (mainWindow.isMinimized()) mainWindow.restore()
      mainWindow.focus()
      mainWindow.webContents.send('folder-path-received', newFolderPath)
    }
  })

  app.whenReady().then(() => {
    // 首次启动读取路径
    const triggerFolderPath = process.argv.length >= 2 ? process.argv[1] : ''
    console.log('触发启动的文件夹路径:', triggerFolderPath)

    // 原有创建窗口逻辑
    mainWindow = new BrowserWindow({
      width: 800,
      height: 600,
      webPreferences: {
        nodeIntegration: true,
        contextIsolation: false
      }
    })
    mainWindow.loadFile('index.html')

    // 路径传递给渲染进程
    mainWindow.webContents.on('did-finish-load', () => {
      mainWindow.webContents.send('folder-path-received', triggerFolderPath)
    })
  })
}

如果渲染进程需要使用该路径,可以在渲染层代码中监听对应的事件:

// 渲染进程js代码
const { ipcRenderer } = require('electron')
ipcRenderer.on('folder-path-received', (event, path) => {
  console.log('拿到的文件夹路径:', path)
  // 后续业务逻辑
})

内容的提问来源于stack exchange,提问作者Elron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:54:02