有沒有一種方法可以在Node.js中複製到剪貼板?任何模塊或想法都是如此嗎?我在桌面應用程序上使用Node.js。希望這清楚了爲什麼我希望它能夠實現這一點。複製到Node.js中的剪貼板?
回答
剪貼板不是操作系統固有的。它是操作系統正在運行的任何窗口系統的結構。因此,如果您希望以X爲例,您需要綁定到Xlib和/或XCB。 Xlib綁定節點實際上存在:https://github.com/mixu/nwm。儘管我不確定它是否允許您訪問X剪貼板,但最終可能會編寫自己的剪貼板。你需要單獨的窗口綁定。
編輯:如果你想做些什麼哈克,你也可以使用XCLIP:
var exec = require('child_process').exec;
var getClipboard = function(func) {
exec('/usr/bin/xclip -o -selection clipboard', function(err, stdout, stderr) {
if (err || stderr) return func(err || new Error(stderr));
func(null, stdout);
});
};
getClipboard(function(err, text) {
if (err) throw err;
console.log(text);
});
我設法通過創建一個不同的應用程序來處理這個。這當然不是最好的方式,但它是有效的。
我在Windows和創建VB.NET應用程序:在Node.js的
Module Module1
Sub Main()
Dim text = My.Application.CommandLineArgs(0)
My.Computer.Clipboard.SetText(text)
Console.Write(text) ' will appear on stdout
End Sub
End Module
然後,我用child_process.exec
運行VB.NET應用程序,以作爲將要複印傳遞的數據命令行參數:
require('child_process').exec(
"CopyToClipboard.exe \"test foo bar\"",
function(err, stdout, stderr) {
console.log(stdout); // to confirm the application has been run
}
);
Mac有一個本地命令行pbcopy
這個用例:
require('child_process').exec(
'echo "test foo bar" | pbcopy',
function(err, stdout, stderr) {
console.log(stdout); // to confirm the application has been run
}
);
相同的代碼的Linux,但替換pbcopy
與Xclip(apt get install xclip
)
這裏是一個模塊,提供copy
個paste
功能:https://github.com/xavi-/node-copy-paste
當執行require("copy-paste").global()
,兩個全局函數添加:
> copy("hello") // Asynchronously adds "hello" to clipbroad
> Copy complete
> paste() // Synchronously returns clipboard contents
'hello'
像許多提到的其他答案,複製和在節點粘貼你需要調用到外部程序。在node-copy-paste
的情況下,它調用pbcopy/pbpaste
(用於OSX),xclip
(用於linux)和clip
(用於windows)。
當我在REPL中爲一個副項目做了大量工作時,該模塊非常有用。不用說,copy-paste
只是一個命令行實用程序 - 它是而不是意味着服務器工作。
這是最好的答案。它是跨平臺的,它的工作方式應該是這樣。 – gilly3
對於OS X:
function pbcopy(data) {
var proc = require('child_process').spawn('pbcopy');
proc.stdin.write(data); proc.stdin.end();
}
write()
可以採取緩衝劑或字符串。字符串的默認編碼將是utf-8。
檢查這個zeroclipboard
NPM安裝zeroclipboard
這似乎是用於瀏覽器,而不是NodeJS桌面應用程序。 –
這也使用閃光燈,這似乎是一個壞主意。 – CallMeNorm
退房clipboardy
。它可以讓你複製/粘貼跨平臺。在另一個答案中,它比copy-paste
模塊mentioned更積極地維護,它修復了該模塊的許多問題。
const clipboardy = require('clipboardy');
// Copy
clipboardy.writeSync('');
// Paste
clipboardy.readSync('');
此模塊完美工作,維護良好。 – SamVerschueren
它比「複製粘貼」模塊更好,因爲它也支持雙字節字符。但是這與Windows 32位操作系統有關。 –
@PonmudiVN Windows 32位支持已修復:https://github.com/sindresorhus/clipboardy/commit/3be3ee6b9b9cd736623fcc8ebb1aa9e0c42371b4 –
- 1. 將文件複製到剪貼板Node.JS
- 2. Prism.js複製到剪貼板
- 3. Javascript複製到剪貼板
- 4. 複製Mathematica中的optput到剪貼板
- 5. 複製到vi中的剪貼板
- 6. Perl複製到剪貼板不能使用剪貼板模塊
- 7. 複製到剪貼板中JS
- 8. 在C++中複製到剪貼板?
- 9. 在Android中複製到剪貼板
- 10. 的Javascript:複製到剪貼板的onkeydown
- 11. 複製到基本html的剪貼板
- 12. Android的Firefox webextension複製到剪貼板
- 13. 複製到沒有System.Windows.Forms.Clipboard的剪貼板?
- 14. 複製的DefaultTableModel數據到剪貼板
- 15. ZeroClipboard - 複製到剪貼板的問題。
- 16. 複製的JTextPane文本到剪貼板
- 17. 複製到剪貼板的圖像在粘貼時被剪裁
- 18. jQuery剪貼板複製
- 19. Javascript複製剪貼板
- 20. 將DataGridView內容複製到剪貼板
- 21. 將內容複製到剪貼板
- 22. 按鈕複製文本到剪貼板
- 23. PyQT - 將文件複製到剪貼板
- 24. Sketch.js將畫布複製到剪貼板
- 25. 將CMD輸出複製到剪貼板
- 26. 複製到剪貼板經典asp
- 27. 將文本複製到剪貼板
- 28. ZeroClipBoard - 將文本複製到剪貼板
- 29. 複製到剪貼板使用Javascript
- 30. 剪貼板將對象複製到
您是否認爲您可以直接在命令行中執行此操作?爲此編寫應用程序意味着我需要爲Mac,Linux和Windows編譯它。 – Tower
@rFactor:我完全沒有使用Mac/Linux的經驗,但我並不知道內置的剪貼板命令。 – pimvdb
在Windows上有一個'clip'命令,IIRC。 –