Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在node JS中侦听操作系统单击事件?_Javascript_Node.js_Electron - Fatal编程技术网

Javascript 如何在node JS中侦听操作系统单击事件?

Javascript 如何在node JS中侦听操作系统单击事件?,javascript,node.js,electron,Javascript,Node.js,Electron,我正在开发一个电子应用程序,你可以在其中突出显示电话号码:电子邮件、浏览器、word等。。。然后右键单击并单击自定义菜单项,然后node将该电话号码添加到列表中。我很难找到“节点”单击事件的文档,我找到的所有内容都是浏览器或窗口单击事件。但是,无论我在哪个应用程序中,我都需要这样做。这叫什么?有更好的方法吗?经过几个小时的研究,我找到了一个可以接受的解决方案,阿德森让我走上了正确的道路。如果有人需要执行类似的操作,下面是生成的代码: const { app, BrowserWindow, glo

我正在开发一个电子应用程序,你可以在其中突出显示电话号码:电子邮件、浏览器、word等。。。然后右键单击并单击自定义菜单项,然后node将该电话号码添加到列表中。我很难找到“节点”单击事件的文档,我找到的所有内容都是浏览器或窗口单击事件。但是,无论我在哪个应用程序中,我都需要这样做。这叫什么?有更好的方法吗?

经过几个小时的研究,我找到了一个可以接受的解决方案,阿德森让我走上了正确的道路。如果有人需要执行类似的操作,下面是生成的代码:

const { app, BrowserWindow, globalShortcut, clipboard } = require('electron');
const path = require('path');
const robot = require('robotjs');
const Notification1 = require('node-mac-notifier');

//removed opening window because it is irrelevant.

app.whenReady().then(() => {
    globalShortcut.register('Cmd+Shift+S', () => {
        robot.keyTap('c', 'command');
        const number = clipboard.readText();
        new Notification1(`${number} added to DNC`, {});
        //Number logic here
    });
});
如果您使用的是electron,则必须同时重建robotjs包和node mac notifier包,具体操作如下:

在终端中:

npm install --save-dev electron-rebuild
npx electron-rebuild -f -m node_modules/node-mac-notifier
npx electron-rebuild -f -m node_modules/robotjs
重建包时,可能会出现“未检测到gyp或clt”错误,以下是修复方法:

xcode-select --print-path
sudo rm -r -f <path>
xcode-select --install
xcode选择——打印路径
sudo rm-r-f
xcode选择--安装

这是不可能的,根本没有这样的事情。您不能影响其他非您的应用程序的行为。如果这些应用程序有自己的右键单击行为,会发生什么情况?它是否应该被节点应用程序指定的内容覆盖?还是两件事都应该发生?那可能会造成一点混乱。对不起,你的概念有缺陷。我可能是错的,但我99%确信,除非你控制操作系统本身,否则你无法实现这一点,即使这样,它也有可能造成完全混乱。我明白了,它是否可以与应用程序“监听”键盘快捷键的键盘快捷键一起工作。。。复制突出显示的文本,然后将其放在列表中?取决于操作系统,在linux上您可以“订阅”任何perihperie事件,在Windows上不可以,也不确定是否使用OSx