質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

495閲覧

electronを使用し、閉じるの動作をキャンセルしたい

anmoti_japan

総合スコア10

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

npm

npmは、Node Packaged Modulesの略。Node.jsのライブラリ・パッケージを管理できるツールです。様々なモジュールを簡単にインストールでき、自分でモジュールを作成し公開する際にも使用できます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2022/11/26 04:59

JavaScriptでelectronを使用し、閉じるの動作をキャンセルしたい

発生している問題

Windowは消えるがプロセスは残っている
Windowが消える前にキャンセルしたい

該当のソースコード

javascript

1const { app, dialog, Menu, BrowserWindow } = require("electron"); 2const path = require("path"); 3 4const window = {}; 5 6const createWindow = () => { 7 const mainWindow = new BrowserWindow({ 8 width: 800, 9 height: 600, 10 resizable: true, 11 useContentSize: true, 12 webPreferences: { 13 preload: path.join(__dirname, "preload.js"), 14 }, 15 }); 16 17 const menuTemplate = Menu.buildFromTemplate([ 18 { 19 label: "ファイル", 20 submenu: [ 21 { role: "close", label: "閉じる" } 22 ] 23 }, 24 { 25 label: "開発者用", 26 click: () => { mainWindow.webContents.openDevTools(); } 27 } 28 ]); 29 30 Menu.setApplicationMenu(menuTemplate); 31 mainWindow.loadFile(path.join(__dirname, "index.html")); 32 33 window.main = mainWindow; 34}; 35 36app.on("ready", createWindow); 37 38app.on("before-quit", (event) => { 39 event.preventDefault(); 40 }); 41 42app.on("activate", () => { 43 if (BrowserWindow.getAllWindows().length === 0) { 44 createWindow(); 45 } 46}); 47

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

Windows x64
Node: v18.12.1
npm: 8.19.2
nvm: 1.1.10

├── @electron-forge/cli@6.0.3
├── @electron-forge/maker-deb@6.0.3
├── @electron-forge/maker-rpm@6.0.3
├── @electron-forge/maker-squirrel@6.0.3
├── @electron-forge/maker-zip@6.0.3
├── @types/fs-extra@9.0.13 extraneous
├── asar@3.2.0 extraneous
├── electron-installer-common@0.10.3 extraneous
├── electron-squirrel-startup@1.0.0
├── electron@21.3.1
├── tmp-promise@3.0.3 extraneous
├── tmp@0.2.1 extraneous
└── word-wrap@1.2.3 extraneous

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ウィンドウが閉じるのをキャンセルするには、BrowserWindow クラスの close イベントevent.preventDefault() を呼びます

投稿2022/11/26 10:20

yuki23

総合スコア1448

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

anmoti_japan

2022/11/26 10:29

ありがとうございます 解決しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問