淺談Node.js操作剪貼板的兩種方式
在 Node.js 中,我們可以通過(guò)多種方式實(shí)現(xiàn)對(duì)系統(tǒng)剪貼板的讀寫(xiě)操作。本文將以一段示例代碼為基礎(chǔ),分別介紹兩種常見(jiàn)的剪貼板操作方式:
1.clipboardy
下載第三方工具庫(kù)clipboardy ,調(diào)用該庫(kù)封裝的方法可直接向剪切板讀寫(xiě)內(nèi)容。
npm install clipboardy
clipboardy不支持使用require導(dǎo)入,需在package.json文件中添加選項(xiàng) "type": "module" ,在代碼中使用import導(dǎo)入工具庫(kù)
import clipboard from "clipboardy";
clipboard.writeSync("hello world"); // 向剪貼板寫(xiě)入內(nèi)容
方法說(shuō)明: clipboard.writeSync(text: string): void
參數(shù):text:要寫(xiě)入系統(tǒng)剪貼板的文本內(nèi)容,類(lèi)型為 string
功能:同步將字符串寫(xiě)入剪貼板。若執(zhí)行成功,按下ctrl+v可粘貼該內(nèi)容,如果文本內(nèi)容為空字符串,按下ctrl+v無(wú)反應(yīng),類(lèi)似于清空剪切板
let str = clipboard.readSync(); // 從剪貼板讀取內(nèi)容 console.log(str);
方法說(shuō)明:clipboard.readSync(): string
返回值:返回當(dāng)前剪貼板中存儲(chǔ)的文本內(nèi)容,類(lèi)型為 string
功能:同步讀取系統(tǒng)剪貼板中的文本數(shù)據(jù)
clipboardy工具庫(kù)的特點(diǎn)為簡(jiǎn)潔、跨平臺(tái),適合快速開(kāi)發(fā),但無(wú)法復(fù)制文件。
2.child_process.exec
在某些場(chǎng)景中,我們可能希望通過(guò)系統(tǒng)命令實(shí)現(xiàn)更復(fù)雜的剪貼板操作,比如操作文件、清空剪貼板等。這時(shí)可以使用 Node.js 內(nèi)置的 child_process 模塊中的 exec() 函數(shù)。
(1)讀取剪切板
import { exec } from "child_process";
const get_command = `powershell Get-Clipboard`;
exec(get_command, (error, stdout, stderr) => {
if (error) {
console.error("讀取剪貼板內(nèi)容失敗:", error);
return;
}
console.log(stdout);
});命令說(shuō)明:Get-Clipboard 是 PowerShell 命令,用于獲取當(dāng)前剪貼板的內(nèi)容
方法說(shuō)明: exec(command[, options][, callback]),功能是執(zhí)行一條 shell 命令并一次性獲取輸出
參數(shù):
- command:完整的 shell 命令字符串
- options:可設(shè)置輸出內(nèi)容的編碼格式等
- callback:回調(diào)函數(shù),獲取 error、stdout(標(biāo)準(zhǔn)輸出)、stderr(錯(cuò)誤輸出),stdout 將包含剪貼板中的文本內(nèi)容
(2)設(shè)置剪切板字符內(nèi)容
const set_command = `powershell Set-Clipboard 'hello wrold'`;
exec(set_command, (error, stdout, stderr) => {
if (error) {
console.error("復(fù)制內(nèi)容到剪貼板失敗:", error);
return;
}
console.log(stdout);
});命令說(shuō)明:
- Set-Clipboard 是 PowerShell 命令,用于將指定文本寫(xiě)入剪貼板。
- 'hello wrold' 是要寫(xiě)入的文本內(nèi)容,用單引號(hào)包裹
(3)設(shè)置剪切板文件內(nèi)容
const file_command = `powershell Set-Clipboard -Path "F:/CSDN/test.json"`;
exec(file_command, (error, stdout, stderr) => {
if (error) {
console.error("復(fù)制文件到剪貼板失敗:", error);
return;
}
console.log(stdout);
});命令說(shuō)明:
- Set-Clipboard -Path <路徑> 可以將文件對(duì)象復(fù)制到剪貼板。
- 執(zhí)行該命令后,用戶(hù)可以在資源管理器中直接粘貼該文件。
- 注意路徑應(yīng)使用雙引號(hào)包裹,尤其是路徑中包含空格或中文時(shí)。
(4)清空剪切板
const clear_command = `cmd /c "echo off | clip"`;
exec(clear_command, (error, stdout, stderr) => {
if (error) {
console.error("清空剪貼板失敗:", error);
return;
}
console.log(stdout);
});命令說(shuō)明:
- cmd /c:調(diào)用 CMD 執(zhí)行后面的命令并關(guān)閉命令行窗口。
- echo off:輸出空字符串。
- | clip:將前面命令的輸出(此處為空)通過(guò)管道符 | 傳給 clip 命令。
- clip:Windows 命令行工具,用于將輸入內(nèi)容復(fù)制到剪貼板。
- 整體功能是向剪貼板寫(xiě)入空內(nèi)容,達(dá)到清空效果,按下ctrl+v無(wú)反應(yīng),此時(shí)按下win+v打開(kāi)剪切板,里面依舊有內(nèi)容
3.總結(jié)對(duì)比
| 操作方式 | 優(yōu)點(diǎn) | 適用場(chǎng)景 |
|---|---|---|
| clipboardy | 簡(jiǎn)潔、跨平臺(tái)、安裝即用 | 快速開(kāi)發(fā)、文本操作 |
| exec+命令 | 功能更豐富,可操作文件等 | 深度定制、系統(tǒng)集成 |
到此這篇關(guān)于淺談Node.js 操作剪貼板的兩種方式的文章就介紹到這了,更多相關(guān)Node.js 操作剪貼板內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Node.js實(shí)現(xiàn)數(shù)據(jù)推送
這篇文章主要為大家詳細(xì)介紹了Node.js實(shí)現(xiàn)數(shù)據(jù)推送的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-04-04
nodejs利用http模塊實(shí)現(xiàn)銀行卡所屬銀行查詢(xún)和騷擾電話驗(yàn)證示例
本篇文章主要介紹了nodejs利用http模塊實(shí)現(xiàn)銀行卡所屬銀行查詢(xún)和騷擾電話驗(yàn)證示例,有興趣的可以了解一下。2016-12-12
前端之npm運(yùn)行時(shí)配置文件.npmrc的方法(可用于配置npm淘寶源)
這篇文章主要給大家介紹了關(guān)于前端之npm運(yùn)行時(shí)配置文件.npmrc(可用于配置npm淘寶源)的相關(guān)資料,.npmrc 文件是用于配置 npm(Node.js 包管理器)行為的配置文件,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
NodeJS http模塊用法示例【創(chuàng)建web服務(wù)器/客戶(hù)端】
這篇文章主要介紹了NodeJS http模塊用法,結(jié)合實(shí)例形式分析了node.js創(chuàng)建web服務(wù)器與客戶(hù)端,進(jìn)行HTTP通信的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11
利用node.js啟動(dòng)本地服務(wù)器的操作指南(超詳細(xì))
這篇文章主要介紹了利用node.js啟動(dòng)本地服務(wù)器的操作指南(超詳細(xì)),有很多小伙伴制作網(wǎng)站或者小程序時(shí),需要通過(guò)服務(wù)器來(lái)把前端和后端連接起來(lái),那么我們今天學(xué)習(xí)啟動(dòng)node.js服務(wù)器,文中有詳細(xì)的代碼示例和圖文供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2024-05-05
node.js中的http.createClient方法使用說(shuō)明
這篇文章主要介紹了node.js中的http.createClient方法使用說(shuō)明,本文介紹了http.createClient的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
node vue項(xiàng)目開(kāi)發(fā)之前后端分離實(shí)戰(zhàn)記錄
其實(shí)基于vue.js+node.js構(gòu)建的開(kāi)源博客系統(tǒng)有很多,下面這篇文章主要給大家介紹了關(guān)于node vue項(xiàng)目開(kāi)發(fā)之前后端分離的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友下面來(lái)一起看看吧。2017-12-12

