ich habe mir aus der hilfe ein kleines tool gebastelt welches alle 250ms einen screenshot erstellt.
es soll als media center hilfstool laufen und das mediacenter auf einem kontrolldisplay anzeigen.
so muss beim musik hören nicht der beamer oder fernseher eingeschaltet werden.
soweit funktioniert es schon, aber ich weiss nicht weiter.
$bild = _ScreenCapture_Capture(@ScriptDir&"\screencap.jpg", 50, 50, 200, 200)
$n = GUICtrlCreatePic(@ScriptDir&"\screencap.jpg", 0, 0, 0, 0)
1. soll mit variablen funktionieren und nicht immer auf die disk schreiben.
2. sollte nach möglichkeit ein geöffnetes vollbild programm (media center) erkennen und nur davon ein bild machen. so wie ich das sehe geht das aber wohl nicht mits class.
3. das angezeigte bild fängt an zu flackern, das muss weg; aber wie?
4. der speicherverbrauch steigt kontinuierlich, obwohl ich doch abgeschlossende funktionen habe. weiss jemand warum und wie ich dem entgegenwirken kann?
damit ihr einen überblick habt hier nun endlich mein wunderwerk der programmierkunst.
[autoit]#include <ScreenCapture.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiConstantsEx.au3>
#include <ScreenCapture.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
Opt("GUIOnEventMode", 1) ;Wechsle in den OnEvent Modus
Global $gui, $guiPos, $pic, $picPos, $bild, $msg, $n, $a=0, $bild1
Local $widht = InputBox("auflösung","widht")
Local $height = InputBox("auflösung","widht")
GUICreate("screencap", $widht, $height, -1, -1, $WS_SIZEBOX + $WS_MAXIMIZEBOX + $WS_SYSMENU) ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird.
GUISetBkColor(0x000000)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUISetState(@SW_SHOW) ;GUI anzeigen
While 1
Sleep(1)
screencapt()
WEnd
Func screencapt()
$bild = _ScreenCapture_Capture(@ScriptDir&"\screencap.jpg", 1080, 502, 1912, 1011) ; testresolution
$n = GUICtrlCreatePic(@ScriptDir&"\screencap.jpg", 0, 0, $widht-4, $height-4) ; -4 px rand
Sleep(250) ; screenshot intervall
EndFunc ;==>Example1
Func CLOSEClicked() ;geht nur wenn keine andere funktion arbeitet
Exit
EndFunc ;==>CLOSEClicked
für eure hilfe wäre ich euch sehr dankbar.
im anschluss an die probleme werde ich dann noch die eingaben der infoboxen per iniwrite/read speichern und evt. auch die aktualisierungsrate anpassbar machen.
wie das geht weiss ich allerdings