#AutoIt3Wrapper_Version=beta
#AutoIt3Wrapper_Icon="AutoIt-Benchmark_ico.ico"
#AutoIt3Wrapper_Outfile=AutoIt-Benchmark.exe
#AutoIt3Wrapper_Compression=3
#AutoIt3Wrapper_Res_Description=AutoIt/GDI+ Benchmark (by SBond)
#AutoIt3Wrapper_Res_Fileversion=1.0.0.2
#AutoIt3Wrapper_Res_Language=1031
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker


#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


$Datei 										= @ScriptDir & "\Autoit-Benchmark - " & @ComputerName & " - " & @MDAY&"."&@MON&"."&@YEAR & ".txt"


$Programmname 								= "AutoIt/GDI+ Benchmark"
$Programmversion 							= "1.0.0.2"
$Autor 										= "SBond"
$Erstelldatum 								= "15.01.2013"
$Updatedatum 								= "17.01.2013"
$Lizenz 									= "Freeware"


$Grafik_breite 								= 660
$Grafik_hoehe								= 300
$Grafik_X_Pos								= 10
$Grafik_Y_Pos								= 10


$CPU_Clock 									= RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0", "~MHz")
$CPU_Identifier 							= RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0", "Identifier")
$CPU_ProcessorNameString 					= RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0", "ProcessorNameString")


$allgemeine_Messdauer						= 8



$Benchmark_Dauer							= 0


$Test_1__Ergebnis_Zeit 						= 0

$Test_2a__Messdauer 						= $allgemeine_Messdauer
$Test_2a__Ergebnis_Zeit 					= 0
$Test_2a__Ergebnis_Plottfrequenz			= 0
$Test_2a__Ergebnis_Bildfrequenz				= 0
$Test_2a__Ergebnis_Plott_zeit				= 0
$Test_2a__Ergebnis_Bild_zeit				= 0

$Test_2b__Messdauer 						= $allgemeine_Messdauer
$Test_2b__Ergebnis_Zeit 					= 0
$Test_2b__Ergebnis_Plottfrequenz			= 0
$Test_2b__Ergebnis_Bildfrequenz				= 0
$Test_2b__Ergebnis_Plott_zeit				= 0
$Test_2b__Ergebnis_Bild_zeit				= 0

$Test_2c__Messdauer 						= $allgemeine_Messdauer
$Test_2c__Ergebnis_Zeit 					= 0
$Test_2c__Ergebnis_Plottfrequenz			= 0
$Test_2c__Ergebnis_Bildfrequenz				= 0
$Test_2c__Ergebnis_Plott_zeit				= 0
$Test_2c__Ergebnis_Bild_zeit				= 0

$Test_3a__Messdauer 						= $allgemeine_Messdauer
$Test_3a__Ergebnis_Zeit 					= 0
$Test_3a__Ergebnis_Plottfrequenz			= 0
$Test_3a__Ergebnis_Bildfrequenz				= 0
$Test_3a__Ergebnis_Plott_zeit				= 0
$Test_3a__Ergebnis_Bild_zeit				= 0

$Test_3b__Messdauer 						= $allgemeine_Messdauer
$Test_3b__Ergebnis_Zeit 					= 0
$Test_3b__Ergebnis_Plottfrequenz			= 0
$Test_3b__Ergebnis_Bildfrequenz				= 0
$Test_3b__Ergebnis_Plott_zeit				= 0
$Test_3b__Ergebnis_Bild_zeit				= 0

$Test_3c__Messdauer 						= $allgemeine_Messdauer
$Test_3c__Ergebnis_Zeit 					= 0
$Test_3c__Ergebnis_Plottfrequenz			= 0
$Test_3c__Ergebnis_Bildfrequenz				= 0
$Test_3c__Ergebnis_Plott_zeit				= 0
$Test_3c__Ergebnis_Bild_zeit				= 0

$Test_4a__Messdauer 						= $allgemeine_Messdauer
$Test_4a__Ergebnis_Zeit 					= 0
$Test_4a__Ergebnis_Plottfrequenz			= 0
$Test_4a__Ergebnis_Bildfrequenz				= 0
$Test_4a__Ergebnis_Plott_zeit				= 0
$Test_4a__Ergebnis_Bild_zeit				= 0

$Test_4b__Messdauer 						= $allgemeine_Messdauer
$Test_4b__Ergebnis_Zeit 					= 0
$Test_4b__Ergebnis_Plottfrequenz			= 0
$Test_4b__Ergebnis_Bildfrequenz				= 0
$Test_4c__Ergebnis_Plott_zeit				= 0
$Test_4c__Ergebnis_Bild_zeit				= 0

$Test_4c__Messdauer 						= $allgemeine_Messdauer
$Test_4c__Ergebnis_Zeit 					= 0
$Test_4c__Ergebnis_Plottfrequenz			= 0
$Test_4c__Ergebnis_Bildfrequenz				= 0
$Test_4c__Ergebnis_Plott_zeit				= 0
$Test_4c__Ergebnis_Bild_zeit				= 0

$Test_5a__Messdauer 						= $allgemeine_Messdauer
$Test_5a__Ergebnis_Zeit 					= 0
$Test_5a__Ergebnis_Plottfrequenz			= 0
$Test_5a__Ergebnis_Bildfrequenz				= 0
$Test_5a__Ergebnis_Plott_zeit				= 0
$Test_5a__Ergebnis_Bild_zeit				= 0

$Test_5b__Messdauer 						= $allgemeine_Messdauer
$Test_5b__Ergebnis_Zeit 					= 0
$Test_5b__Ergebnis_Plottfrequenz			= 0
$Test_5b__Ergebnis_Bildfrequenz				= 0
$Test_5b__Ergebnis_Plott_zeit				= 0
$Test_5b__Ergebnis_Bild_zeit				= 0

$Test_5c__Messdauer 						= $allgemeine_Messdauer
$Test_5c__Ergebnis_Zeit 					= 0
$Test_5c__Ergebnis_Plottfrequenz			= 0
$Test_5c__Ergebnis_Bildfrequenz				= 0
$Test_5c__Ergebnis_Plott_zeit				= 0
$Test_5c__Ergebnis_Bild_zeit				= 0

$Test_5d__Messdauer 						= $allgemeine_Messdauer
$Test_5d__Ergebnis_Zeit 					= 0
$Test_5d__Ergebnis_Plottfrequenz			= 0
$Test_5d__Ergebnis_Bildfrequenz				= 0
$Test_5d__Ergebnis_Plott_zeit				= 0
$Test_5d__Ergebnis_Bild_zeit				= 0

$Test_5e__Messdauer 						= $allgemeine_Messdauer
$Test_5e__Ergebnis_Zeit 					= 0
$Test_5e__Ergebnis_Plottfrequenz			= 0
$Test_5e__Ergebnis_Bildfrequenz				= 0
$Test_5e__Ergebnis_Plott_zeit				= 0
$Test_5e__Ergebnis_Bild_zeit				= 0

$Test_6a__Ergebnis_Zeit 					= 0





$hGUI 						= GUICreate($Programmname & " - " & $Programmversion, 680, 375)
$Button_start				= GUICtrlCreateButton ("Test starten", 9, 340,602,26)
$Button_info				= GUICtrlCreateButton ("Info", 614, 340,57,26)

$Label_Status				= GUICtrlCreateLabel("...Leerlauf...  (Testdauer ca. 2 bis 3 Minuten)",10,320,660,14)

GUICtrlSetBkColor($Label_Status, 0xDDDDDD)

Opt("GUIOnEventMode", 1)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUICtrlSetOnEvent($Button_start, "_Testreihe_starten")
GUICtrlSetOnEvent($Button_info, "_Infos")

GUISetState()





_GDIPlus_Startup()

$hGraphic 		= _GDIPlus_GraphicsCreateFromHWND($hGUI)										;Erstmal das normale Grafik-Objekt erstellen.
$hBitmap	 	= _GDIPlus_BitmapCreateFromGraphics($Grafik_breite, $Grafik_hoehe, $hGraphic)	;Statt uns mit dem normalen Frontbuffer zufrieden zu geben, erstellen wir erstmal eine Bitmap, mit Bezug auf unser Grafikobjekt.
$hBackbuffer 	= _GDIPlus_ImageGetGraphicsContext($hBitmap)									;Nachdem unser Bitmap erstellt ist, holen wir uns den Graphics Context. Dieser wird von uns verwendet, um darin zu zeichnen.
$hPen 			= _GDIPlus_PenCreate(0xFFFFFFFF, 1)

_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)







While 1

	Sleep (10000)

WEnd





Func _Testreihe_starten()

	GUICtrlSetState($Button_start,$GUI_DISABLE)
	GUICtrlSetData($Button_start, "...Test gestartet...")
	$Benchmark_Dauer = TimerInit()


	; ############################################# Test 1 #############################################

	GUICtrlSetData($Label_Status, "Test 01/16:    von 1 bis 100.000.000 zählen... (dies kann einige Sekunden dauern)")

	$Time = TimerInit()

	For $i = 1 To 100000000 Step 1
		$i += 1
	Next

	$Test_1__Ergebnis_Zeit = Round(TimerDiff ($Time)*0.001,4)




	; ############################################# Test 2a #############################################

	GUICtrlSetData($Label_Status, "Test 02/16:    immer eine Linie in den Backbuffer zeichnen...  Messdauer: " & $Test_2a__Messdauer & " sek, Rendermodus: 0")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 0)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 0)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_2a__Messdauer*1000))

		$counter += 0.019
		$counter_2 +=1


		$Y_neu = 150+sin($counter)*100

		_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)
		_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

		$X_alt = $X_neu
		$Y_alt = $Y_neu

		$X_neu += 1

		If ($X_neu = $Grafik_breite) Then
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
		EndIf

	WEnd

	$Test_2a__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_2a__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_2a__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_2a__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_2a__Ergebnis_Zeit,3)
	$Test_2a__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_2a__Ergebnis_Zeit)/$Grafik_breite,3)


	; ############################################# Test 2b #############################################

	GUICtrlSetData($Label_Status, "Test 03/16:    immer eine Linie in den Backbuffer zeichnen...  Messdauer: " & $Test_2b__Messdauer & " sek, Rendermodus: 1")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 1)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 1)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_2b__Messdauer*1000))

		$counter += 0.019
		$counter_2 +=1


		$Y_neu = 150+sin($counter)*100

		_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)
		_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

		$X_alt = $X_neu
		$Y_alt = $Y_neu

		$X_neu += 1

		If ($X_neu = $Grafik_breite) Then
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
		EndIf

	WEnd

	$Test_2b__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_2b__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_2b__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_2b__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_2b__Ergebnis_Zeit,3)
	$Test_2b__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_2b__Ergebnis_Zeit)/$Grafik_breite,3)



	; ############################################# Test 2c #############################################

	GUICtrlSetData($Label_Status, "Test 04/16:    immer eine Linie in den Backbuffer zeichnen...  Messdauer: " & $Test_2c__Messdauer & " sek, Rendermodus: 2")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 2)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_2c__Messdauer*1000))

		$counter += 0.019
		$counter_2 +=1


		$Y_neu = 150+sin($counter)*100

		_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)
		_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

		$X_alt = $X_neu
		$Y_alt = $Y_neu

		$X_neu += 1

		If ($X_neu = $Grafik_breite) Then
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
		EndIf

	WEnd


	$Test_2c__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_2c__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_2c__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_2c__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_2c__Ergebnis_Zeit,3)
	$Test_2c__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_2c__Ergebnis_Zeit)/$Grafik_breite,3)








	; ############################################# Test 3a #############################################

	GUICtrlSetData($Label_Status, "Test 05/16:    immer eine Linie in den Frontbuffer zeichnen...  Messdauer: " & $Test_3a__Messdauer & " sek, Rendermodus: 0")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 0)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_3a__Messdauer*1000))

		$counter += 0.019
		$counter_2 +=1


		$Y_neu = 150+sin($counter)*100

		_GDIPlus_GraphicsDrawLine ($hGraphic, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)

		$X_alt = $X_neu
		$Y_alt = $Y_neu

		$X_neu += 1

		If ($X_neu = $Grafik_breite) Then
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
		EndIf

	WEnd

	$Test_3a__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_3a__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_3a__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_3a__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_3a__Ergebnis_Zeit,3)
	$Test_3a__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_3a__Ergebnis_Zeit)/$Grafik_breite,3)



	; ############################################# Test 3b #############################################

	GUICtrlSetData($Label_Status, "Test 06/16:    immer eine Linie in den Frontbuffer zeichnen...  Messdauer: " & $Test_3b__Messdauer & " sek, Rendermodus: 1")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 1)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_3b__Messdauer*1000))

		$counter += 0.019
		$counter_2 +=1


		$Y_neu = 150+sin($counter)*100

		_GDIPlus_GraphicsDrawLine ($hGraphic, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)

		$X_alt = $X_neu
		$Y_alt = $Y_neu

		$X_neu += 1

		If ($X_neu = $Grafik_breite) Then
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
		EndIf

	WEnd

	$Test_3b__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_3b__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_3b__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_3b__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_3b__Ergebnis_Zeit,3)
	$Test_3b__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_3b__Ergebnis_Zeit)/$Grafik_breite,3)






	; ############################################# Test 3c #############################################

	GUICtrlSetData($Label_Status, "Test 07/16:    immer eine Linie in den Frontbuffer zeichnen...  Messdauer: " & $Test_3c__Messdauer & " sek, Rendermodus: 2")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_3c__Messdauer*1000))

		$counter += 0.019
		$counter_2 +=1


		$Y_neu = 150+sin($counter)*100

		_GDIPlus_GraphicsDrawLine ($hGraphic, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)

		$X_alt = $X_neu
		$Y_alt = $Y_neu

		$X_neu += 1

		If ($X_neu = $Grafik_breite) Then
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
		EndIf

	WEnd

	$Test_3c__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_3c__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_3c__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_3c__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_3c__Ergebnis_Zeit,3)
	$Test_3c__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_3c__Ergebnis_Zeit)/$Grafik_breite,3)




	; ############################################# Test 4a #############################################

	GUICtrlSetData($Label_Status, "Test 08/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_4a__Messdauer & " sek, Rendermodus: 0")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 0)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 0)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_4a__Messdauer*1000))

			$counter += 0.019
			$counter_2 +=1
			$Y_neu = 150+sin($counter)*100

			_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)


			$X_alt = $X_neu
			$Y_alt = $Y_neu

			$X_neu += 1


		If ($X_neu = $Grafik_breite) Then
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
		EndIf

	WEnd


	$Test_4a__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_4a__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_4a__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_4a__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_4a__Ergebnis_Zeit,3)
	$Test_4a__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_4a__Ergebnis_Zeit)/$Grafik_breite,3)





	; ############################################# Test 4b #############################################

	GUICtrlSetData($Label_Status, "Test 09/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_4b__Messdauer & " sek, Rendermodus: 1")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 1)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 1)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_4b__Messdauer*1000))

			$counter += 0.019
			$counter_2 +=1
			$Y_neu = 150+sin($counter)*100

			_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)


			$X_alt = $X_neu
			$Y_alt = $Y_neu

			$X_neu += 1


		If ($X_neu = $Grafik_breite) Then
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
		EndIf

	WEnd


	$Test_4b__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_4b__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_4b__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_4b__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_4b__Ergebnis_Zeit,3)
	$Test_4b__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_4b__Ergebnis_Zeit)/$Grafik_breite,3)




	; ############################################# Test 4c #############################################

	GUICtrlSetData($Label_Status, "Test 10/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_4c__Messdauer & " sek, Rendermodus: 2")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 2)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_4c__Messdauer*1000))

			$counter += 0.019
			$counter_2 +=1
			$Y_neu = 150+sin($counter)*100

			_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)


			$X_alt = $X_neu
			$Y_alt = $Y_neu

			$X_neu += 1


		If ($X_neu = $Grafik_breite) Then
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
		EndIf

	WEnd


	$Test_4c__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_4c__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_4c__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_4c__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_4c__Ergebnis_Zeit,3)
	$Test_4c__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_4c__Ergebnis_Zeit)/$Grafik_breite,3)


	; ############################################# Test 5a #############################################

	GUICtrlSetData($Label_Status, "Test 11/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_5a__Messdauer & " sek, Rendermodus: 0, Rauschsignal 1")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 0)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 0)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_5a__Messdauer*1000))

			$counter += 0.019
			$counter_2 +=1
			$Y_neu = 150+sin($counter)*Random(0,150,1)

			_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)


			$X_alt = $X_neu
			$Y_alt = $Y_neu

			$X_neu += 1


		If ($X_neu = $Grafik_breite) Then
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
		EndIf

	WEnd

	$Test_5a__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_5a__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_5a__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_5a__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_5a__Ergebnis_Zeit,3)
	$Test_5a__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_5a__Ergebnis_Zeit)/$Grafik_breite,3)



	; ############################################# Test 5b #############################################

	GUICtrlSetData($Label_Status, "Test 12/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_5b__Messdauer & " sek, Rendermodus: 0, Rauschsignal 2")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 0)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 0)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_5b__Messdauer*1000))

			$counter += 0.019
			$counter_2 +=1
			$Y_neu = (150+sin($counter)*100)+Random(-80,80,1)

			_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)


			$X_alt = $X_neu
			$Y_alt = $Y_neu

			$X_neu += 1


		If ($X_neu = $Grafik_breite) Then
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
		EndIf

	WEnd


	$Test_5b__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_5b__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_5b__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_5b__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_5b__Ergebnis_Zeit,3)
	$Test_5b__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_5b__Ergebnis_Zeit)/$Grafik_breite,3)


	; ############################################# Test 5c #############################################

	GUICtrlSetData($Label_Status, "Test 13/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_5c__Messdauer & " sek, Rendermodus: 0, Rauschsignal 3")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 0)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 0)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_5c__Messdauer*1000))

			$counter += 0.019
			$counter_2 +=1
			$Y_neu = 150+Random(-50,50,1)

			_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)


			$X_alt = $X_neu
			$Y_alt = $Y_neu

			$X_neu += 1


		If ($X_neu = $Grafik_breite) Then
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
		EndIf

	WEnd


	$Test_5c__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_5c__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_5c__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_5c__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_5c__Ergebnis_Zeit,3)
	$Test_5c__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_5c__Ergebnis_Zeit)/$Grafik_breite,3)




	; ############################################# Test 5d #############################################

	GUICtrlSetData($Label_Status, "Test 14/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_5d__Messdauer & " sek, Rendermodus: 0, Rauschsignal 4")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 0)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 0)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_5d__Messdauer*1000))

			$counter += 0.019
			$counter_2 +=1
			$Y_neu = 150+Random(-150,150,1)

			_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)

			$X_alt = $X_neu
			$Y_alt = $Y_neu

			$X_neu += 1


		If ($X_neu = $Grafik_breite) Then
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
		EndIf

	WEnd

	$Test_5d__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_5d__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_5d__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_5d__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_5d__Ergebnis_Zeit,3)
	$Test_5d__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_5d__Ergebnis_Zeit)/$Grafik_breite,3)



	; ############################################# Test 5e #############################################

	GUICtrlSetData($Label_Status, "Test 15/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_5e__Messdauer & " sek, Rendermodus: 0, Rauschsignal 5")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 0)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 0)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)

	While (TimerDiff ($Time) < ($Test_5e__Messdauer*1000))

			Grafik_farbe()
			$counter += 0.019
			$counter_2 +=1
			$Y_neu = 150+Random(-150,150,1)

			_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)

			$X_alt = $X_neu
			$Y_alt = $Y_neu

			$X_neu += 1


		If ($X_neu = $Grafik_breite) Then
			$X_alt = 0
			$X_neu = 0
			_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
			_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
		EndIf

	WEnd

	$Test_5e__Ergebnis_Plott_zeit			= Round(TimerDiff ($Time)/$counter_2,3)
	$Test_5e__Ergebnis_Bild_zeit			= Round(TimerDiff ($Time)/$counter_2,3)*$Grafik_breite
	$Test_5e__Ergebnis_Zeit 				= Round(TimerDiff ($Time)*0.001,4)
	$Test_5e__Ergebnis_Plottfrequenz		= Round($counter_2/$Test_5e__Ergebnis_Zeit,3)
	$Test_5e__Ergebnis_Bildfrequenz			= Round(($counter_2/$Test_5e__Ergebnis_Zeit)/$Grafik_breite,3)



	; ############################################# Test 6a #############################################

	GUICtrlSetData($Label_Status, "Test 16/16:    nur den fertigen Backbuffer zeichnen... , Rendermodus: 0, Einzelpixel (dies kann einige Sekunden dauern)")

	$Time = TimerInit()
	$counter = 0
	$counter_2 = 0
	$X_alt = 0
	$Y_alt = 0
	$X_neu = 0
	$Y_neu = 0

	_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 0)
	_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer, 0)
	_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)


	for $y = 0 to $Grafik_hoehe Step 1

		for $x = 0 to $Grafik_breite Step 1

			Grafik_farbe()
			$counter_2 +=1

			$X_neu = $x
			$Y_neu = $y
			_GDIPlus_GraphicsDrawLine ($hBackbuffer, $X_alt, $Y_alt, $X_neu, $Y_neu, $hPen)
			$X_alt = $X_neu
			$Y_alt = $Y_neu

		Next
		$X_alt = 0


	Next


	If ($X_neu = $Grafik_breite) Then
		$X_alt = 0
		$X_neu = 0
		_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $Grafik_X_Pos, $Grafik_Y_Pos, $Grafik_breite, $Grafik_hoehe)
		_GDIPlus_GraphicsClear($hBackbuffer, 0xFF000000)
	EndIf


	$Test_6a__Ergebnis_Zeit 			= Round(TimerDiff ($Time)*0.001,4)






	; ############################################# Daten speichern #############################################

	$Benchmark_Dauer = Round(TimerDiff($Benchmark_Dauer)*0.001,2) & " s"

	GUICtrlSetData($Label_Status, "Daten werden gespeichert...")
	Sleep (3000)



	$file = FileOpen($Datei, 1)

	If $file = -1 Then
		MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
		_Exit()
	EndIf


	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file ,"#####################################################  Dateibeginn  ####################################################")
	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Software-Informationen")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "Programmtitel:"  									& @TAB & @TAB & @TAB & @TAB 						& $Programmname)
	FileWriteLine ($file, "Programmversion:"  									& @TAB & @TAB & @TAB 								& $Programmversion)
	FileWriteLine ($file, "Autor:"												& @TAB & @TAB & @TAB & @TAB & @TAB 					& $Autor)
	FileWriteLine ($file, "Erstellungsdatum:"  									& @TAB & @TAB & @TAB								& $Erstelldatum)
	FileWriteLine ($file, "letztes Update:"  									& @TAB & @TAB & @TAB & @TAB							& $Updatedatum)
	FileWriteLine ($file, "Lizenz:"  											& @TAB & @TAB & @TAB & @TAB & @TAB 					& $Lizenz)
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Informationen:" 										& @TAB & @TAB & @TAB & @TAB & 						"Mit diesem kleinen Programm ist es möglich, eine Leistungsanalyse von AutoIt und GDI+ durchzuführen, ")
	FileWriteLine ($file,														  @TAB & @TAB & @TAB & @TAB & @TAB & 				"um diese anschließend vergleichen zu können.")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "allgemeine Benchmark-Informationen")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "Datum:"  											& @TAB & @TAB & @TAB & @TAB & @TAB 					& @MDAY&"."&@MON&"."&@YEAR)
	FileWriteLine ($file, "Zeit:"  												& @TAB & @TAB & @TAB & @TAB & @TAB 					& @HOUR&":"&@MIN&":"&@SEC)
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Benchmark-Dauer:" 									& @TAB & @TAB & @TAB 								& $Benchmark_Dauer)
	FileWriteLine ($file, "Grafik-breite" 										& @TAB & @TAB & @TAB & @TAB 						& $Grafik_breite)
	FileWriteLine ($file, "Grafik-höhe:" 										& @TAB & @TAB & @TAB & @TAB 						& $Grafik_hoehe)
	FileWriteLine ($file, "Grafik-Pixel:" 										& @TAB & @TAB & @TAB & @TAB 						& $Grafik_breite*$Grafik_hoehe)
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Computer-Informationen")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "CPU-Architektur:" 									& @TAB & @TAB & @TAB 								& @CPUArch)
	FileWriteLine ($file, "CPU-Clock:" 											& @TAB & @TAB & @TAB & @TAB 						& $CPU_Clock & " MHz")
	FileWriteLine ($file, "CPU-Identifier:" 									& @TAB & @TAB & @TAB & @TAB 						& $CPU_Identifier)
	FileWriteLine ($file, "CPU-Name:" 											& @TAB & @TAB & @TAB & @TAB 						& $CPU_ProcessorNameString)
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Betriebssystem:" 									& @TAB & @TAB & @TAB & @TAB 						& @OSVersion)
	FileWriteLine ($file, "Build:" 												& @TAB & @TAB & @TAB & @TAB & @TAB 					& @OSBuild)
	FileWriteLine ($file, "Service-Pack:" 										& @TAB & @TAB & @TAB & @TAB 						& @OSServicePack)
	FileWriteLine ($file, "Betriebssystem-Architektur:" 						& @TAB & @TAB 										& @OSArch)
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 01/16:    von 1 bis 100.000.000 zählen... (dies kann einige Sekunden dauern)")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_1__Ergebnis_Zeit & " s")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 02/16:    immer eine Linie in den Backbuffer zeichnen...  Messdauer: " & $Test_2a__Messdauer & " sek, Rendermodus: 0")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_2a__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_2a__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_2a__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_2a__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_2a__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_2a__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 03/16:    immer eine Linie in den Backbuffer zeichnen...  Messdauer: " & $Test_2b__Messdauer & " sek, Rendermodus: 1")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_2b__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_2b__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_2b__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_2b__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_2b__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_2b__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 04/16:    immer eine Linie in den Backbuffer zeichnen...  Messdauer: " & $Test_2c__Messdauer & " sek, Rendermodus: 2")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_2c__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_2c__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_2c__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_2c__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_2c__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_2c__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 05/16:    immer eine Linie in den Frontbuffer zeichnen...  Messdauer: " & $Test_3a__Messdauer & " sek, Rendermodus: 0")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_3a__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_3a__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_3a__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_3a__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_3a__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_3a__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 06/16:    immer eine Linie in den Frontbuffer zeichnen...  Messdauer: " & $Test_3b__Messdauer & " sek, Rendermodus: 1")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_3b__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_3b__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_3b__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_3b__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_3b__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_3b__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 07/16:    immer eine Linie in den Frontbuffer zeichnen...  Messdauer: " & $Test_3c__Messdauer & " sek, Rendermodus: 2")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_3c__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_3c__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_3c__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_3c__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_3c__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_3c__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 08/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_4a__Messdauer & " sek, Rendermodus: 0")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB								& $Test_4a__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_4a__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_4a__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_4a__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_4a__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_4a__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 09/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_4b__Messdauer & " sek, Rendermodus: 1")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_4b__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_4b__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_4b__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_4b__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_4b__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_4b__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 10/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_4c__Messdauer & " sek, Rendermodus: 2")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_4c__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_4c__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB							& $Test_4c__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_4c__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB										& $Test_4c__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_4c__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 11/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_5a__Messdauer & " sek, Rendermodus: 0, Rauschsignal 1")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_5a__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_5a__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_5a__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_5a__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_5a__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_5a__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 12/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_5b__Messdauer & " sek, Rendermodus: 0, Rauschsignal 2")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_5b__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_5b__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_5b__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_5b__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_5b__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_5b__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 13/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_5c__Messdauer & " sek, Rendermodus: 0, Rauschsignal 3")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_5c__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_5c__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_5c__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_5c__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_5c__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_5c__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 14/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_5d__Messdauer & " sek, Rendermodus: 0, Rauschsignal 4")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_5d__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_5d__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_5d__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_5d__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB 										& $Test_5d__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_5d__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 15/16:    nur den fertigen Backbuffer zeichnen...  Messdauer: " & $Test_5e__Messdauer & " sek, Rendermodus: 0, Rauschsignal 5")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "eingestellte Messdauer:" 							& @TAB & @TAB & @TAB 								& $Test_5e__Messdauer & " s")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_5e__Ergebnis_Zeit & " s")
	FileWriteLine ($file, "Plottfrequenz:"										& @TAB & @TAB & @TAB & @TAB 						& $Test_5e__Ergebnis_Plottfrequenz & " Hz")
	FileWriteLine ($file, "Bildfrequenz (FPS):" 								& @TAB & @TAB & @TAB 								& $Test_5e__Ergebnis_Bildfrequenz & " Hz")
	FileWriteLine ($file, "Plottzeit für einen Wert:" 							& @TAB & @TAB										& $Test_5e__Ergebnis_Plott_zeit & " ms")
	FileWriteLine ($file, "Plottzeit für ein Bild ("&$Grafik_breite&" Werte):" 	& @TAB 												& $Test_5e__Ergebnis_Bild_zeit & " ms")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file, "Test 16/16:    nur den fertigen Backbuffer zeichnen... , Rendermodus: 0, Einzelpixel (dies kann einige Sekunden dauern)")
	FileWriteLine ($file, "------------------------------------------------------------------------------------------------------------------------")
	FileWriteLine ($file, "gemessene Zeit:" 									& @TAB & @TAB & @TAB & @TAB 						& $Test_6a__Ergebnis_Zeit & " s")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file ,"######################################################  Dateiende  #####################################################")
	FileWriteLine ($file ,"########################################################################################################################")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")
	FileWriteLine ($file,"")

	FileClose($file)





	GUICtrlSetData($Label_Status, "Performance-Test abgeschlossen")
	GUICtrlSetData($Button_start, "Test starten")
	GUICtrlSetState($Button_start,$GUI_ENABLE)

EndFunc






Func Grafik_farbe()
	$color = "0xFF" & Hex(Random(0,255,1),2) & Hex(Random(0,255,1),2) & Hex(Random(0,255,1),2)
	_GDIPlus_PenSetColor($hPen, $color)
EndFunc





Func _Infos()
	MsgBox(0,$Programmname & " - " & $Programmversion, _
	"Mit diesem kleinen Programm ist es möglich, eine Leistungsanalyse von AutoIt und GDI+ durchzuführen, " & _
	"um diese anschließend vergleichen zu können." & @CRLF & @CRLF & _
	"Während des Tests dürfen keine aktiven Programme im Hintergrund laufen. Außerdem darf das Programmfenster nicht verschoben werden, " & _
	"da sonst die Messwerte starkt verfälscht werden. Am Ende des Tests wird eine Datei mit den Testergebnissen erzeugt." & @CRLF & @CRLF & @CRLF & _
	"Autor: " 				& @TAB & @TAB	 & $Autor & @CRLF & _
	"Erstellungsdatum: " 	& @TAB			 & $Erstelldatum & @CRLF & _
	"letztes Update: " 		& @TAB			 & $Updatedatum & @CRLF & _
	"Lizenz: " 				& @TAB & @TAB	 & $Lizenz)

EndFunc




Func _Exit()
	_GDIPlus_PenDispose($hPen)
	_GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_Shutdown()
    Exit

EndFunc






