使用'[System.Windows.Forms.Clipboard]::ContainsData',如何使用它来检查剪贴板是否具有'html'数据格式?

问题描述 投票:0回答:1

我正在尝试使用这个类。当我想检查剪贴板是否具有

text
格式时,我想我知道如何让它工作。复制文本后,将返回以下内容
true
:

[System.Windows.Forms.Clipboard]::ContainsData('text')

但是,如果我从文章或网页复制带有链接的文章,则会返回以下内容

false

[System.Windows.Forms.Clipboard]::ContainsData('html')

我确信我的剪贴板中有 html 格式,因为我可以将其粘贴到允许我这样做的软件中,例如 Obsidian。

我这样做是因为我想以 html 格式获取剪贴板内容。我尝试了以下方法:

[System.Windows.Forms.Clipboard]::GetData('text')

它返回一个对象:

CanRead      : True
CanSeek      : True
CanWrite     : True
Capacity     : 2354
Length       : 2354
Position     : 0
CanTimeout   : False
ReadTimeout  :
WriteTimeout :

但是用

[System.Windows.Forms.Clipboard]::GetData('html')
做同样的事情不会返回任何结果,我再次确信我的剪贴板中有 html 内容。

我需要这样做,因为我只需要获取剪贴板 html 内容作为字符串,以便在 PowerShell 中进一步处理。我正在使用 pwsh 7.4

powershell
1个回答
0
投票

使用静态 [System.Windows.Forms.DataFormats]

 的静态 
fields 来指定众所周知的格式,特别是本例中的
[System.Windows.Forms.DataFormats]::Html

[System.Windows.Forms.Clipboard]::ContainsData(
  [System.Windows.Forms.DataFormats]::Html
)
© www.soinside.com 2019 - 2024. All rights reserved.