Tenho usado um script do PowerShell deste blog (script na parte inferior) para criar uma caixa de mensagens para os usuários informarem qual é o nome de usuário da VPN. O que eu quero fazer é adicionar um botão de cópia para que o usuário possa copiar o nome de usuário. Abaixo está um código extra que foi adicionado no final do script para iniciar a caixa de mensagem. Atualmente tudo o que aparece é um botão OK. Não conheço o WPF e estou tentando me manter dentro da estrutura do script do autor do blog. Também incluí uma imagem da aparência da caixa de mensagens.
# Read content of VPN_username.txt, if it exists.
if (Test-Path -Path "$env:SystemDrive\Temp\VPN_username.txt") {
$VPNUserName = Get-Content -Path "$env:SystemDrive\Temp\VPN_username.txt" -Force
}
# Load WPF assembly
Add-Type -AssemblyName PresentationFramework
# Create a richtextbox to display the completion summary with hyperlinks
$RTB = New-Object System.Windows.Controls.RichTextBox
$RTB.Padding = 5
$RTB.IsDocumentEnabled = $true
$RTB.IsReadOnly = $true
$RTB.BorderThickness = 0
$RTB.MaxWidth = 370
$RTB.FontFamily = "Segui"
$RTB.FontSize = 14
$FlowDocument = New-Object System.Windows.Documents.FlowDocument
$Paragraph = New-Object System.Windows.Documents.Paragraph
$Run = New-Object System.Windows.Documents.Run
$Run.Text = "The VPN username that you last used is $VPNUserName"
$Paragraph.AddChild($Run)
$FlowDocument.AddChild($Paragraph)
$RTB.AddChild($FlowDocument)
# Display the messagebox.
New-WPFMessageBox -Content $RTB -Title "Cisco Secure Client Upgrade" -TitleFontSize 24 -TitleBackground MidnightBlue -TitleTextForeground White -Sound 'Windows Notify'
Parece que isso é possível usando botões personalizados que você passa para a função na postagem do blog à qual você vinculou. Usando um dos exemplos do blog podemos criar uma hashtable com os parâmetros e adicionar
CustomButtons
com o texto desejado e passar paraNew-WPFMessageBox
.Também é possível criar ações nesses botões.
Modificando o código de exemplo dos botões nomeados acima, podemos fazer o seguinte:
Ele copiará o valor de
$VPNUserName
uso de Set-Clipboard para a área de transferência e sairá se "ok" for pressionado.Juntando-o com o resto do código da mesma forma.