【问题标题】:Clipboard change event in electron电子中的剪贴板更改事件
【发布时间】:2020-04-08 00:40:15
【问题描述】:

我想编写一个剪贴板管理器来监控系统的剪贴板。好吧,我找到了:https://github.com/atom/electron/blob/master/docs/api/clipboard.md,但找不到剪贴板的任何事件。

电子中是否存在剪贴板事件?我的意思是像 QClipboardvoid selectionChanged()void dataChanged() 或者像 GTK 的所有者已更改

目前我正在检索剪贴板的内容并手动查看内容是否每 20 毫秒更改一次,这不应该是首选方式。它有效,但我真的不应该求助于繁忙的轮询循环......

【问题讨论】:

标签: javascript events clipboard electron


【解决方案1】:

不幸的是,Electron 还没有提供这样的事件。

目前 Electron 团队等待 Chromium 项目先实现此功能。但根据 Chromium 问题跟踪器,他们只实现了 ChromeOS 和 X11 支持,并且不打算在 Windows/MacOS 上实现它。

您可以在功能请求中找到更多信息:https://github.com/electron/electron/issues/2280

【讨论】:

    【解决方案2】:

    您可以在下面看到一个如何将事件处理程序附加到剪贴板事件的简单示例。

    ['cut', 'copy', 'paste'].forEach(function(event) {
        document.addEventListener(event, function(e) {
            console.log(e);   
        });
    });
    

    请注意cutpaste 在适当的可编辑区域中工作。

    这个主题在这里详细评论:https://www.lucidchart.com/techblog/2014/12/02/definitive-guide-copying-pasting-javascript/

    【讨论】:

    • 谢谢。我可能应该补充说应用程序在后台运行并且没有焦点。由于浏览器的剪贴板不支持此功能(出于安全原因,可能永远不会支持)电子创建了我在上面引用的另一个 API。这对于像电子这样的桌面环境(安全方面)来说是可以的,因为我们像“本机”一样运行它。我可以通过此 API 捕获所有内容,但采用繁忙的轮询方式。现在 qt 的框架还针对桌面应用程序,还提供了剪贴板 API,但具有我希望在电子中看到的信号机制。
    猜你喜欢
    • 1970-01-01
    • 2021-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多