• Electron 注册全局快捷键(globalShortcut) 以及 clipboard剪切板事件(实现类似播放器点击机器码自动复制功能)


    globalShortcart.js引入到主进程里

    var { globalShortcut ,app} =require('electron');
    
    app.on('ready',function(){
        
        //注册全局快捷键
    
    
        globalShortcut.register('ctrl+e',function(){
    
    
            console.log('ctrl+e');
        })
    
        
        globalShortcut.register('ctrl+d',function(){
    
    
            console.log('ctrl+d registed');
        })
    
        //检测快捷键是否注册功能
    
       console.log(globalShortcut.isRegistered('ctrl+e'));
    })
    
    app.on('will-quit',function(){
    
        //注销全局快捷键的监听
    
        globalShortcut.unregister('ctrl+e');
    
        globalShortcut.unregister('ctrl+d');
    })

    cliboard.js引入到渲染进程里

    //clipboard模块可以在主进程里面使用 也可以在渲染进程里面使用
    
    
    var {clipboard,nativeImage} =require('electron');
    
    
    //执行复制操作
    
    
    //复制
    // clipboard.writeText('机器码')
    
    // 粘贴
    
    // clipboard.readText();  
    
    
    
    var  code=document.querySelector('#code');
    var  btn=document.querySelector('#btn');
    var  input=document.querySelector('#input');
    
    code.onclick=function(){
    
    
        clipboard.writeText(code.innerHTML);
    
        alert('复制成功') ;   //写一个div提示
    }
    
    btn.onclick=function(){
    
        //获取复制的内容
        input.value= clipboard.readText();
    }
    
    
    
    
    
    //监听按钮点击复制图片的事件
    
    
    
    
    var  btncopyimg=document.querySelector('#btncopyimg');
    
    btncopyimg.onclick=function(){
        //复制图片黏贴到我们页面上
    
        /*
        1.引入nativeImage
    
        2、创建一个nativeImage的对象
    
        */
    
    
        var image=nativeImage.createFromPath('static/favicon2.ico');
    
        //复制图片
        clipboard.writeImage(image);
    
        //粘贴图片
    
        var imgsrc=clipboard.readImage().toDataURL();
    
        console.log(imgsrc);   //base64的地址
    
        
        //创建一个img标签 指定他的src
        var imgDom=new Image();
    
        imgDom.src=imgsrc;
    
    
        document.body.appendChild(imgDom);
    
    
    
    }

    index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
    
      <style>
      .red{
    
        color:red;
      }
      </style>
     
    </head>
    <body>
    
    
    
      <div>
    
        机器码:<span class="red" id="code">124124321fdsfsd234324325325</span>
      </div>
    
    
    
      <br>
    
      <input type="text" id="input">
    
      <button id="btn">黏贴</button>
    
      <br>
    
      <br>
    
      <br>
    
      <br>
    
      <button id="btncopyimg">复制图片显示到页面</button>
    
      <br>
    
      <br>
    
      <br>
    
       <script src="renderer/clipboard.js"></script>
    </body>
    </html>
  • 相关阅读:
    C++中使用stringstream进行类型转换操作
    代理模式
    观察者模式 VS 责任链模式
    10.模板方法模式
    2.里氏替换原则
    单一职责原则
    规格模式
    策略模式的扩展——策略枚举
    策略模式 VS 桥梁模式
    原型模式【下】
  • 原文地址:https://www.cnblogs.com/loaderman/p/12163602.html
Copyright © 2020-2023  润新知