2024年5月15日 星期三

PowerShell 複製到剪貼簿歷史中

PowerShell 複製到剪貼簿歷史中

預設的 Set-Clipboard 不會顯示在剪貼簿中,這個是他的擴充函式
直接上代碼,自行取用

function Set-ClipboardHistory {
    param(
        [Parameter(Mandatory=$true)]
        [string]$Value,

        [Parameter()] # 記錄在 Windows 的剪貼板歷史
        [switch]$DenyInHistory,

        [Parameter()] # 在用戶的多個設備之間漫遊
        [switch]$Roamable
    )

    # 加載 Windows Runtime 類型
    Add-Type -AssemblyName 'System.Runtime.WindowsRuntime'

    # 創建 DataPackage 和 ClipboardContentOptions 對象
    $dataPackage = New-Object Windows.ApplicationModel.DataTransfer.DataPackage
    $cOptions = New-Object Windows.ApplicationModel.DataTransfer.ClipboardContentOptions

    # 根據參數設定剪貼板內容選項
    $cOptions.IsAllowedInHistory = -not $DenyInHistory
    $cOptions.IsRoamable = $Roamable

    # 設定剪貼板操作為複製
    [int]$RequestedOperationCopy = 1
    $dataPackage.RequestedOperation = $RequestedOperationCopy

    # 使用選項將內容設置到剪貼板
    $dataPackage.SetText($Value)
    [Windows.ApplicationModel.DataTransfer.Clipboard]::SetContentWithOptions($dataPackage, $cOptions) | Out-Null

} # Set-ClipboardHistory "TestString"

-

沒有留言:

張貼留言