Die Diskussion mit Screenshots von DirectX/OpenGL basierenden Fenstern per AutoIt hatten wir glaube ich schon mehr als einmal und wahren uns jedesmal einig, dass AutoIt dafür zu langsam ist bzw. eine Endscene mit AutoIt zu hooken zu kompliziert ist (erst recht für einen Anfänger).
das es für anfänger wohl schwer ist merke ich.
die geschwindigkeit ist relativ egal, ich will ja den im meinem fall den 2. bildschirm in einem fenster auf dem 1. bildschirm wiedergeben. es soll nur als kontrollfenster fungieren und delays sind ok.
soweit klappt das ja auch, nur nicht, wenn auf dem 2. bildschirm etwas im vollbild laufen lasse.
der screenshooter schaut nett aus und ich werde das tool auch in meine sammlung an nützlichen tolls aufnehmen, aber das tool zeigt schon kein bild mehr an, wenn ich mit meiner möglichkeit das bild noch sehe.
autoit.de/wcf/attachment/13418/autoit.de/wcf/attachment/13419/
das linke ist von screenshooter und das linke mit meinem tool.
sobald ich aber mit dem in diesem fall MC in den vollbild modus gehe ist es auch bei mir duster.
kann ich evtl. die D3D9 udf dafür nutzen?
D3D9 Udf
da gibt es die sektion
;============================================================================================================================================
; Function: _D3D9_MemCopy($pPointer1, $pPointer2, $iSize)
; Description: Copies the values of $pPointer2 to $pPointer1
; Parameter(s): $pPointer1 - Pointer to the destination
; $pPointer2 - Pointer to the Source
; $iSize - Number of bytes to copy.
; Return Value(s): On Success - 1
; On Failure - 0
; @Error - 1 to 4 = @error of DllStructCreate with $pPointer1
; 5 to 8 = @error of DllStructCreate (+4) with $pPointer2
; Author(s): Deathly Assassin (http://www.autoitbot.de)
;============================================================================================================================================
Func _D3D9_MemCopy($pPointer1, $pPointer2, $iSize)
Local $tStructure, $tStructure2, $Err
$tStructure = DllStructCreate("byte[" & $iSize & "]", $pPointer1)
$Err = @error
If $Err Then SetError($Err, 0, 0)
$tStructure2 = DllStructCreate("byte[" & $iSize & "]", $pPointer2)
$Err = @error
If $Err Then SetError($Err, 0, 0)
DllStructSetData($tStructure, 1, DllStructGetData($tStructure2, 1))
Return 1
EndFunc ;==>_D3D9_MemCopy
ohne mich da nun auszukennen, liest sich das doch, wie kopiere den inhalt von X nach Y.
[autoit]_D3D9_MemCopy($Sourcedisplay, $Mein_tool, $iSize)
[/autoit]
aber was mache ich mit $iSize?
das würde dann ja heissen das ich das handle vom sourcefenster nehme und in meine GUI reinkopiere. theoretisch.....
oder bin ich da auf dem holzweg?