gpt4 book ai didi

javascript - 如何使用 JXA 将图像或文件复制到剪贴板?

转载 作者:行者123 更新时间:2023-12-02 21:41:06 25 4
gpt4 key购买 nike

我在 ScriptEditor 中使用 JavaScript 时遇到困难

AppleScript 通过这样的路径将图像复制到剪贴板

set image to POSIX file ("/Users/lll00lll/Library/Documents/temp.jpg")
set the clipboard to image

但是如何将上面的 AppleScript 代码转换为 JavaScript 呢?

像这样的 JavaScript 可以将字符串复制到剪贴板,但不能复制图像或文件

var app = Application('Script Editor');
app.includeStandardAdditions = true;
app.setTheClipboardTo(str);

或者使用 Objective-C ?但我不知道如何将其编辑为“generalPasteboard.setData”

$.NSPasteboard.generalPasteboard.clearContents;
$.NSPasteboard.generalPasteboard.setStringForType($(str), $.NSPasteboardTypeString);

最佳答案

这使用 JS-ObjC 桥将一个或多个文件放入剪贴板。 fsCopy 可以传递单个文件路径或文件路径数组,并在操作完成后返回剪贴板上的项目数(显然,这应该等于文件路径的数量)。

ObjC.import('AppKit');


function fsCopy(fs) {
const pb = $.NSPasteboard.generalPasteboard;
pb.clearContents;

[].concat(fs).forEach(f =>
pb.writeObjects([
ObjC.unwrap($.NSURL
.fileURLWithPath(f))
])
);

return pb.pasteboardItems.count * 1;
}

关于javascript - 如何使用 JXA 将图像或文件复制到剪贴板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60364311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com