how to get copied text from clipboard on Golang [Mac]

huangapple go评论82阅读模式
英文:

how to get copied text from clipboard on Golang [Mac]

问题

首先,我是Go语言的初学者。

我想知道如何在Go语言中获取剪贴板中的复制文本。

我已经搜索了三个包,但我还不知道具体的方法 🥹

"github.com/atotto/clipboard"
"github.com/d-tsuji/clipboard"
"golang.design/x/clipboard"

我只是想像这样获取复制的文本

这是Python代码

copy_string = pyperclip.paste()

帮帮我吧。

英文:

first of all I'm beginner of Golang

I wonder how to get copied text from clipboard on GoLang

I've searched about three packages but I don't know the way yet 🥹

"github.com/atotto/clipboard"
"github.com/d-tsuji/clipboard"
"golang.design/x/clipboard"

I just want to get copied text like this

this is python code

copy_string = pyperclip.paste()

help me guys

答案1

得分: 4

这将取决于您的操作系统。这就是为什么您提到的包有 _unix.go _windows.go _darwing.go 等文件。

如果您的问题是关于标准库是否有复制函数,那是没有的!

在Mac上,有两个可用的函数:pbpastepbcopy

因此,如果您想在Mac上进行复制/粘贴而不使用库,可以使用以下代码:

func copy(content string) error {
    cmd := exec.Command("pbcopy")
    in, err := cmd.StdinPipe()
    if err != nil {
        return err
    }
    if err := cmd.Start(); err != nil {
        return err
    }
    if _, err := in.Write([]byte(content)); err != nil {
        return err
    }
    if err := in.Close(); err != nil {
        return err
    }
    return cmd.Wait()
}

func paste() (content string, err error) {
    cmd := exec.Command("pbpaste")
    out, err := cmd.Output()
    return string(out), err
}

希望对您有所帮助!

英文:

That will depend on your OS. That is why packages you mention have _unix.go _windows.go _darwing.go etc.

There is no copy function from std lib if that is your question!

On mac, there are two function available to you:
pbpaste and pbcopy.

So if you want to copy/paste on mac without a library:

func copy(content string) error {
	cmd := exec.Command("pbcopy")
	in, err := cmd.StdinPipe()
	if err != nil {
		return err
    }
	if err := cmd.Start(); err != nil {
		return err
	}
	if _, err := in.Write([]byte(content)); err != nil {
		return err
	}
	if err := in.Close(); err != nil {
		return err
	}
	return cmd.Wait()
}


func paste() (content string, err error) {
	cmd := exec.Command("pbpaste")
	out, err := cmd.Output()
	return string(out), err
}

答案2

得分: 1

这是我正在寻找的内容
我希望这段代码能帮助像我这样的人

import "github.com/d-tsuji/clipboard"

text, err := clipboard.Get()
fmt.Println(text)
英文:

This is what I'm looking for
I hope this code will help someone like me

import "github.com/d-tsuji/clipboard"

text, err := clipboard.Get()
fmt.Println(text)

huangapple
  • 本文由 发表于 2022年9月22日 17:45:56
  • 转载请务必保留本文链接:https://go.coder-hub.com/73812535.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定