J'essaie d'enregistrer une image du presse-papiers dans le chemin d'accès au fichier. J'ai essayé le script script ci-dessous et il renvoie "clipboard does not contain image data".
Add-Type -AssemblyName System.Windows.Forms
if ($([System.Windows.Forms.Clipboard]::ContainsImage())) {
$image = [System.Windows.Forms.Clipboard]::GetImage()
$filename='e:\test\test.png'
[System.Drawing.Bitmap]$image.Save($filename, [System.Drawing.Imaging.ImageFormat]::Png)
Write-Output "clipboard content saved as $filename"
} else {
Write-Output "clipboarsd does not contains image data"
}
En tant que Clipboard
ne peut être utilisée que dans les threads en mode "single thread apartment" (STA).
J'ai essayé d'exécuter le script en
powershell -NoProfile -Sta -File $file
J'ai également essayé de relancer l'application si l'espace de travail n'est pas STA, mais cela n'a rien donné.
Add-Type -AssemblyName System.Windows.Forms
if ($host.Runspace.ApartmentState -ne "STA") {
"Relaunching"
$file = "./saveImage.ps1"
powershell -NoProfile -Sta -File $file
return
}