吹啊!吹啊!我骄傲的放纵··· 写了一上午长篇大论,中午出去吃个饭回了都没了,桑心,蛋疼,心烦,心烦,心烦ing 说了多少遍叫我月城少主!月城少主!!!
开启第一步:nodejs实现复制文本到剪切板!
缘由: 为啥要复制到粘贴板呢,缘由就是robotjs这货不支持输入中文,这个没法说毕竟编程还是老外居多,期间我尝试用 pinyin+空格 按键组合; 就这pinyin能打出多少种情况,, 想想还是算了吧!
思路 定时发消息的思路是这个样子滴 ;用nodejs脚本发请求,并要写的东西放到电脑ctrl+c的内存里面;于是我只用在调试代码中,ctrl+v就行了。当然一切都是程序自己来;说到这里好多人就不用往下看了,因为一切都太简单了;但是有时候看看比较好 毕竟做了才看到有几个坑;
非常简单的功能,但nodejs没有提供。但不要绝望因为nodejs可以调用系统命令,而系统命令中有不少可以操作剪切板的命令,由于系统是windows,所以考虑使用windows cmd命令中的clip,来实现复制到剪切板的功能。
const exec = require(‘child_process').exec;
exec(‘echo 123456 | clip');
这个就可以了,超级简单啦,这里有问题来了,但这个命令的执行结果,有个我无法忍受的bug:复制出来的文本,最后有个换行符(echo造成的)!
const exec = require('child_process').exec;
exec('<nul (set/p z=123456) | clip');
So 这样呢,黏贴出来的东西后面有一个空格;这东西没啥大问题反正本人是接受了,不避免有些人无法接受,下面我就告诉大家 那个方法百度一下 到处都是复制就能用;虽然不想说 因为我是不想用 费那么大劲,占那么大内存就为了去一个空格,而且一般程序无影响, 哎 还是复制过来白话一下吧;
// 简单的复制文本到剪切板的函数,参数依次是文本,成功回调
var copyToClipboard = function(text, func) {
// 这种方式最完美,但最麻烦
// 会生成一个批处理文件,一个文本文件,以批处理文件复制文件文件的内容,后又需要删除两个文件。
var temp = 'txt_' + Date.now() + '.txt';
var str = `@echo off
<nul (set/p z=${text}) > ${temp}
clip < ${temp}
del ${temp}
`;
// 这句加入批处理,会导致报错,虽然能执行(复制)成功。原因应该是,del批处理文件自身的时候,no