greeenn
Goto Top

Screenshot tool mit Powershell oder einer .exe

Hi,

ich bräuchte ein Skript oder eine .exe die einen Screenshot vom aktuellen Bildschirm macht.

Der Screenshot soll anschließend mit einer fortlaufenden Nummer in einem Ordner abgespeichert werden.

Ich hatte zuerst an eine Anwendung mit PowerShell gedacht. Diese sollte dann über eine Batch gestartet werden mit dem "-WindowStyle Hidden" Parameter.

Leider klappt das nicht so ganz.


Hat jemand vielleicht schon so eine Lösung gebaut oder weiß wie ich das am besten umsetzen kann?


Vielen Dank voraus!

Content-Key: 629334

Url: https://administrator.de/contentid/629334

Printed on: April 16, 2024 at 11:04 o'clock

Member: BirdyB
BirdyB Dec 08, 2020 at 08:52:00 (UTC)
Goto Top
Moin,

wie wäre es mit greenshot? Dort kannst du das automatische Speichern mit Nummerierung einstellen.

VG
Mitglied: 146707
146707 Dec 08, 2020 updated at 10:55:01 (UTC)
Goto Top
Leider klappt das nicht so ganz.
Klar jeht dat ...Pillepalle
# folder to store screenshots in
$folder = "$env:Userprofile\Desktop"  
Add-Type -A System.Drawing
Add-Type -A System.Windows.Forms
Add-Type –memberDefinition '[DllImport("user32.dll")]public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);' -name Win -namespace W32  
# Hide PS window
[W32.Win]::ShowWindow((Get-Process -id $pid).MainWindowHandle, 0) 
# get screen size
$w = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Width
$h = [System.Windows.Forms.SystemInformation]::PrimaryMonitorSize.Height
# create bitmap with screensize
$bm = New-Object System.Drawing.Bitmap $w,$h
# capture Desktop
[System.Drawing.Graphics]::FromImage($bm).CopyFromScreen(0,0,0,0,"$w,$h")  
# save as JPEG and dispose image object
$jpgQuality = 90
$encParams = New-Object System.Drawing.Imaging.EncoderParameters(1)
$encParams.Param = New-Object System.Drawing.Imaging.EncoderParameter ([System.Drawing.Imaging.Encoder]::Quality, $jpgQuality)
$encFormat = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() | ?{$_.MimeType -eq 'image/jpeg'}  
$bm.Save((join-path $folder "$(get-date -f yyyyMMdd_HHmmss).jpg"),$encFormat,$encParams)  
$bm.Dispose(); $encParams.Dispose()
Gruß p.
Member: GreeeNn
GreeeNn Dec 08, 2020 at 10:47:00 (UTC)
Goto Top
Hi,

das sieht doch schon ganz Gut aus!

Den Pfad hab ich durch meinen Pfad ersetzt.

Leider kommen bei mir noch folgende Fehler.


+ [W32.Win]::ShowWindow((Get-Process –id $pid).MainWindowHandle, 0)
+                                              ~
Unerwartetes Token ")" in Ausdruck oder Anweisung.  
+ [W32.Win]::ShowWindow((Get-Process –id $pid).MainWindowHandle, 0)
+                                                                ~
Argument in der Parameterliste fehlt.
+ [W32.Win]::ShowWindow((Get-Process –id $pid).MainWindowHandle, 0)
+                                                                   ~
Unerwartetes Token ")" in Ausdruck oder Anweisung.  
    + CategoryInfo          : ParserError: (:) , ParseException
    + FullyQualifiedErrorId : UnexpectedToken
Mitglied: 146707
146707 Dec 08, 2020 updated at 10:57:42 (UTC)
Goto Top
–id
Copy N Paste Problem beim Kopieren .... sieht man am Bindestrich den es bei dir verhunzt hat face-wink. Gedankenstrich statt Bindestrich im falschen Encoding.
Member: GreeeNn
GreeeNn Dec 08, 2020 at 11:16:58 (UTC)
Goto Top
Ah stimmt!

Sorry das hier ein Problem nach dem anderen kommt, aber hier noch ein weiterer Fehler.


+ ...  $folder "$(get-date -f yyyyMMdd_HHmmss).jpg"),$encFormat,$encParams)  
+                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~
Die Zeichenfolge hat kein Abschlusszeichen: ".  
    + CategoryInfo          : ParserError: (:) , ParseException
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
Mitglied: 146707
146707 Dec 08, 2020 updated at 11:29:14 (UTC)
Goto Top
Kopier es endlich richtig und stell das Encoding des Skripts richtig ein, funktioniert nämlich problemlos, getestet! Das Problem liegt auf deiner Seite. Oder versuch einfach mal das Skript selbst zu verstehen dann hat der Thread auch einen Lerneffekt.
Ich bin raus. Tschö und viel Spaß.
Member: GreeeNn
GreeeNn Dec 08, 2020 at 13:54:38 (UTC)
Goto Top
Danke nochmal!

Es klappt jetzt alles so wie es sollte!