guten abend, ich habe hier eine screenshot_ersteller.au3 heruntergeladen und versucht auf mein Problem anzupassen.
mein reduzierter Code lautet:
Spoiler anzeigen
#Region ---Include---
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ScreenCapture.au3>
#include <Misc.au3>
#include <GuiListBox.au3>
#include <Array.au3>
#EndRegion ---Include---
#Region ---Optionen---
Opt("TrayAutoPause", 0)
Opt("TrayIconDebug", 0)
Opt("TrayIconHide", 0)
Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 0)
#EndRegion ---Optionen---
#Region ---Veriablendekleration---
Global $Nummer = 1
Global $nTitle = "NetSkat -"
#EndRegion ---Veriablendekleration---
#Region ---Systray---
TraySetIcon(@SystemDir & "\shell32.dll", -142)
TraySetToolTip("Screenhot ersteller")
TraySetClick(17)
;~ MenuItems:
$TrayMenu_FotoAlles = TrayCreateItem("Screenshot Netskat erstellen")
TrayCreateItem("")
$TrayMenu_OrdnerOffnen = TrayCreateItem("Bilderordner öffnen")
TrayCreateItem("")
$TrayMenu_Exit = TrayCreateItem("Beenden")
#EndRegion ---Systray---
#Region ---Startup---
$Pfad = @ScriptDir & "\Bilder\" & @MDAY & "." & @MON & "." & @YEAR
If FileExists($Pfad) = 1 Then ;~ Es gibt schon Bilder von heute
$Grossse = DirGetSize($Pfad, 1)
If $Grossse[1] > 0 Then ;~ Wenn es eine Datei gibt
$Frage = MsgBox(262468, "Scrennhot ersteller", "Willst du die alten Bilder löschen?")
If $Frage = 6 Then ;~ Alte Bilder überschreiben
DirRemove($Pfad, 1)
DirCreate($Pfad)
Else
;~ Nummer des letten Bildes herausfinden:
$Durchlauf = 1
While 1
If FileExists($Pfad & "\BildNr." & $Durchlauf & ".jpg") = 0 Then
$Nummer = $Durchlauf
ExitLoop
EndIf
$Durchlauf += 1
WEnd
EndIf
EndIf
Else
DirCreate($Pfad)
EndIf
#EndRegion ---Startup---
#Region ---Hotkeys---
HotKeySet("{F2}", "_foto")
HotKeySet("{F3}", "_exit")
#EndRegion ---Hotkeys---
#Region ---While---
While 1
Switch TrayGetMsg()
Case $TrayMenu_FotoAlles
MsgBox(0,"","foto machen")
_foto()
Case $TrayMenu_Exit
_exit()
Case $TrayMenu_OrdnerOffnen
_bilderordner_offnen()
EndSwitch
WEnd
#EndRegion ---While---
#Region ---Funktionen---
Func _bilderordner_offnen() ;~ Ordner mit den Bildern öffnen
Run("explorer.exe " & $Pfad)
EndFunc ;==>_bilderordner_offnen
;~ Fenster fotographieren:
Func _foto()
MsgBox(0,"1","foto machen")
WinActivate ($nTitle)
WinWaitActive ($nTitle)
$fenster = "";hier fehlt richtige angabe des aktiven Fensters ?
_ScreenCapture_CaptureWnd($Pfad & "\BildNr." & $Nummer & ".jpg", $fenster) ;~ Foto machen
TrayTip("", "Foto erfolgreich erstellt.", 2, 1) ;~ Erfolgreich erstellt Info anzeigen
$Nummer += 1 ;~ Nummer hochsetztn für das nächste Bild
EndFunc ;==>_foto_von_Fenster
Func _exit() ;~ Programm beeden
Exit
EndFunc ;==>_exit
alles soweit ok , bis auf die richtige angabe des tensters das photografiert werden soll.
ZitatAlles anzeigenFunc _foto()
MsgBox(0,"1","foto machen")
WinActivate ($nTitle)
WinWaitActive ($nTitle)
$fenster = "";hier fehlt richtige angabe des aktiven Fensters ?
_ScreenCapture_CaptureWnd($Pfad & "\BildNr." & $Nummer & ".jpg", $fenster) ;~ Foto machen
irgendwie ist es denke ich ein unterschied ob das fenster maximiert ist oder verkleinert,
ZitatAus autiot HilfeErstellt von einem bestimmten Fenster einen Screenshot
#Include <ScreenCapture.au3>
_ScreenCapture_CaptureWnd($sFileName, $hWnd [, $iLeft = 0 [, $iTop = 0 [, $iRight = -1 [, $iBottom = -1 [, $fCursor = True]]]]])
Parameter
$sFileName Kompletter Pfad, Dateiname und Erweiterung der Bilddatei
$hWnd Handle des Fensters
ich bin seit Stunden am rumsuchen, bekomme das aber nicht auf die Reihe,
danke im voraus für Lösung
gruss
roland_k