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

