关闭obsidian时自动弹窗(自定义文本)

求问如何在点击右上角关闭按钮关闭obsidian时,自动显示弹窗。弹窗中可以自定义文本。
win10
v1.8.10版本

AI提供的解决方案是使用插件绑定快捷键,使用快捷键执行脚本,弹窗并关闭obsidian。不符合日常点右上角×号关闭的操作习惯。

或许可以加个按钮覆盖到右上角的位置

参考这个帖子脚本分享:定制悬浮命令按钮

非常感谢。我也分享一种使用windows系统自带【任务计划程序】的思路,当任务计划程序监测到obsidian程序关闭时将自动启动写好的弹窗脚本,但偶尔会出现错误弹窗的情况。
可以参考此XML(exe文件的路径按自己的安装位置设置):

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">*[System[(Level=4 or Level=0) and (band(Keywords,9007199254740992)) and (EventID=4689) and TimeCreated[timediff(@SystemTime) &lt;= 3600000]]] and *[EventData[Data[@Name='ProcessName'] and (Data='C:\Program Files\Zotero\zotero.exe')]] and *[EventData[Data[@Name='Status'] and (Data='0x0')]]</Select>
  </Query>
</QueryList>

或者写个obsidian插件,监听obsidian关闭事件

感谢回复,不过我不懂这方面所以不太适合我

obsidian 支持监听客户端关闭事件,可以以这个核心写一个简单的插件

import { Plugin } from 'obsidian';

export default class AppCloseListenerPlugin extends Plugin {
  async onload() {
    console.log('插件已加载');
    
    // 注册应用程序关闭事件监听器
    this.registerDomEvent(window, 'beforeunload', (evt) => {
      console.log('Obsidian 即将关闭');
      // 在这里执行应用关闭前需要完成的操作
      
      // 如果需要提示用户确认关闭,可以使用以下代码
      // evt.preventDefault();
      // evt.returnValue = '确定要关闭 Obsidian 吗?';
    });
    
    // 另一种方法是使用 Obsidian 的应用程序事件
    this.registerEvent(
      this.app.workspace.on('quit', () => {
        console.log('Obsidian 正在退出');
        // 执行关闭前的清理工作
      })
    );
  }

  onunload() {
    console.log('插件已卸载');
  }
}
1 个赞