• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Inspiration life

ひらめきに従い行動する。

  • Contact
  • Author
  • Products

【2021年】Electron のipcMainでフォルダを開く方法

Miyanogawa Yuya
ゆうや
2021 12/19 · 14 min read

Electron のipcMainでフォルダを開く方法

こんにちは。宮野川です。個人でアプリ開発してます。

現在販売中の『PBR Media Player』でプレイリスト機能を実装中に調べたことを、忘備録としてここに残しておきます。

目次 非表示
開発環境
結論 Renderer
結論 Main
要点
shell.showItemInFolder(file_path)
ipcRenderer.send(‘request_playlists_folder_open’, file_path)
ipcMain.on(‘request_playlists_folder_open’, function() )
経緯
感想
参考ドキュメント

開発環境

  • macOS Big Sur
  • electron 13.1.7
  • react 17.0.2
  • nextron 7.0.0

結論 Renderer

// electron
import { ipcRenderer } from 'electron';
//マテリアルUI 
import { Button } from '@material-ui/core';

function open_folder() {
    const file_path = "/Volumes/Samsung_T5/audio/audio_1.mp3"
    ipcRenderer.send('request_playlists_folder_open', file_path)
}

const Playlists = () => {
    return (
        <>
            <Button
                color="primary"
                onClick={open_folder}
            >TEST</Button>
        </>
    )
}

export default Playlists

結論 Main

import { app , Menu ,dialog , nativeTheme, ipcMain, shell } from 'electron';

//------------------------------------
// IPC Main
//------------------------------------

  ipcMain.on('request_playlists_folder_open',  (event, file_path) => {
    console.log(file_path)
    shell.showItemInFolder(file_path)
  })

//------------------------------------

要点

shell.showItemInFolder(file_path)

フォルダを開く関数。ファイルパスは出来るだけファイル名も含めて欲しいらしい。

ipcRenderer.send(‘request_playlists_folder_open’, file_path)

ipcMain に処理を送る関数。
request_playlists_folder_open はipcMain で使うチャンネル名を書く。
file_path は任意の変数や文字列。

ipcMain.on(‘request_playlists_folder_open’, function() )

ipcMain.on でチャンネルを作成。function() に任意の処理を書く。

経緯

公式ドキュメントに”Note: While the shell module can be used in the renderer process, it will not function in a sandboxed renderer.”とある。アプリはサンドボックス化するので、レンダラー側で実装しても実用に耐えない。そこでipcMain通信を用いたファイル操作の必要が出てきた。

感想

Electron の学習を始めた6ヶ月前は、ipc通信の難易度が高くて実装出来なかった。今改めて公式ドキュメントを見てみると、要点がシンプルで分かり易かった。

参考ドキュメント

  • 公式Electron ipcMain // https://www.electronjs.org/docs/latest/api/ipc-main/
  • 公式Electron shell // https://www.electronjs.org/docs/latest/api/shell/

Categories: プログラミングTags: electron, ipc, Javascript

IQテストをKindle出版しました。

IQ140まで測れるIQテスト2023:44,000人以上のユーザーが遊んだ解説付き問題集

関連記事

  • Electron + React でサウンドファイルを再生する方法。
  • 【解決済み】さくらVPS kusanagi9でwordpressのプラグイン更新が出来ない。
  • 【解決】ERROR ITMS-90237: “The product archive package’s signature is invalid. Ensure that it is signed with your “3rd Party Mac Developer Installer” certificate.”
  • Promise オブジェクトの中身取得方法。

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

one × four =

Footer

最近書きました。

  • IQは遺伝するのか?双子研究と遺伝子研究から考える
  • 傾向を分析する。平均的なIQは時代とともにどう変化してきたか?
  • IQテストに関する神話を否定する。事実と虚構を区別する
  • IQテストの攻略法:認知のパターンと問題解決の見極め方
  • IQテストの長所と短所を探るIQテストの長所と短所を探る
  • Electron + React でサウンドファイルを再生する方法。
  • 【解決済み】さくらVPS kusanagi9でwordpressのプラグイン更新が出来ない。
  • 【解決】ERROR ITMS-90237: “The product archive package’s signature is invalid. Ensure that it is signed with your “3rd Party Mac Developer Installer” certificate.”
  • オリジナルIQテスト中級編 全16問 測定可能IQ120 ( s.d.15 )
  • 日本人の世界での平均IQは3位。

興味と関心のリスト

  • IQテストの答えと解説 (16)
  • IQについて (18)
  • Cambridge Brain Sciences (4)
  • 雑記 (6)
  • プログラミング (5)

より細かい分類

A Real Me (6) Brain Wars (1) Brain Workshop (1) Cambridge Brain Sciences (3) electron (3) Fit Brains (1) Hampshire Tree Task (1) ipc (1) ipcMain (1) ipcRender (1) IQ CERTIFICATE (1) IQTEST (2) IQtest.dk (4) IQについて (1) Javascript (3) kusanagi (1) Lumosity (1) MacAppStore (1) mas (1) MensaIQTest (2) react (1) testiq.dk (1) Transpoter (1) VONVON (4) wordpress (1) Xcode13 (1) さくらVPS (1) プログラミング (1) ヴィーガン (1) 思考 (1) 意識と感情 (1) 感情論 (2) 読書 (1)

このブログの歴史

最近のコメントです。

  • アクション on 2020年版 ノルウェーメンサの答えと解説 Exercise 1〜35: “問33についてなのですがシンプルに上下で分け、上の白旗の数が2。下の白旗の数が4…” Mar 11, 00:33
  • Yuya@ on 私がヴィーガンになった理由: “コメントありがとうございます。 動物には家族がいますが、植物に家族っている…” Feb 1, 02:18
  • Yuya@ on 2020年版 ノルウェーメンサの答えと解説 Exercise 1〜35: “Lung コメントありがとうございます。 Exercise33 について考…” Dec 26, 01:36
  • 宮田正光 on 有料IQテスト IQ CERTIFICATE 2019を遊んでみた結果: “なし” Dec 16, 19:58
  • Lung on 2020年版 ノルウェーメンサの答えと解説 Exercise 1〜35: “Exercise33について、グルーピングと順番までは同じなのですが 折り返す…” Aug 14, 00:44
  • Yuya@ on 【図解で解説】2021年IQテスト(2021年度 新証明書)の答え全18問: “にぇ さん コメントありがとうございます。 仮想通貨に夢中になっててブロ…” Jun 22, 04:47
  • にぇ on 【図解で解説】2021年IQテスト(2021年度 新証明書)の答え全18問: “Q10は、選択肢に1本の線の図形が他にもありますので… 「円の中心として回転対…” May 8, 19:40

© 2023inspirationlife. All rights reserved.

  • About
  • Products
  • Contact
  • プライバシーポリシー
  • 免責事項