Добавить строку в буфер обмена Windows, не добавляя ее в историю в PowerShell? - PullRequest
0 голосов
/ 13 марта 2019

Я использую PowerShell для копирования конфиденциальной информации в буфер обмена Windows.

начиная с Windows 10 Vs. 1809 у нас есть улучшенный буфер обмена с функцией истории. Я не хочу, чтобы моя конфиденциальная информация была в истории.

Командлет Set-Clipboard не имеет никаких полезных параметров. Даже в C # у меня нет простого способа сделать это.

1 Ответ

0 голосов
/ 13 марта 2019

Немного поиграв, я понял, что значение реестра в

HKEY_CURRENT_USER \ Software \ Microsoft \ Clipboard \ EnableClipboardHistory

Если история включена, значение устанавливается в 1, в противном случае - 0. Изменение значения вручную на 0 отключает историю, не удаляя ее.

Возвращение 1 возвращает предыдущую историю. Зная это, я написал функцию:

 Function Set-ClipboardWithoutHistory([string]$Value)
 {
     $Path = "HKCU:\Software\Microsoft\Clipboard"
     $Name = "EnableClipboardHistory"
     [int]$currentValue = 0

     If (Test-Path -Path "$Path")
     {
         $Key = Get-Item -LiteralPath $Path
         if ($null -ne $Key.GetValue($Name, $null)) {
             $currentValue = (Get-ItemProperty -Path $Path -Name $Name).EnableClipboardHistory
         }
     }

     if ($currentValue -eq 1) {Set-ItemProperty -Path $Path -Name $Name -Value 0 | Out-Null}
     Set-Clipboard -Value $Value
     if ($currentValue -eq 1) {Set-ItemProperty -Path $Path -Name $Name -Value 1 | Out-Null}     

 }

Я проверяю наличие EnableClipboardHistory со значением 1, только тогда я отключу историю, установив ее на 0, после вызова Set-Clipboard я могу переключить ее обратно на 1.

Если значение не существует или равно 0, мне не нужно делать ничего особенного.

Предыдущая история буфера обмена все еще там, но моих данных нет.

Это может быть чем-то вроде взлома, но пока у нас не будет правильного переключателя в будущей версии PowerShell, это прекрасно работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...