Hey,
Ich möchte gerne 2 Skripts miteinander verbinden, die am besten auch Kommunizieren können. Das erste Skript ist ein login, das auch überprüft ob daten vorhanden sind und soo... Das zweite Skript ist das spiel, an ihm soll der ID weitergegeben werden, damit man eine "Speicher" funktion hat.
Beispiel: Ich habe auf dem Desktop den Login. Starte ihn, & logge mich ein. Wenn der Login erfolgreich war, sollen ein paar parameter übergeben werden ($ID & $NR das sind jeweils der Speicherort & der Name womit eingeloggt wird) danach soll (wenns geht) das gesamte Login Skript geschlossen werden. Er soll einfach mit dem Spiel fortfahren.
Ich weiß nicht obs von nöten ist, aber ich poste dazu mal beide (fürs erste nur 2) Skripts die verbunden werden sollen.
Spoiler anzeigen
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <string.au3>
#include <Date.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Login", 300, 134)
$LogID = GUICtrlCreateInput("", 24, 24, 121, 21)
$LogNR = GUICtrlCreateInput("", 24, 56, 121, 21)
$Label1 = GUICtrlCreateLabel("Name", 168, 24, 32, 17)
$bLogin = GUICtrlCreateButton("Login", 24, 88, 75, 25, 0)
GUICtrlSetOnEvent(-1,"_Login")
$bPw = GUICtrlCreateButton("Pw?", 112, 88, 43, 25, 0)
GUICtrlSetOnEvent(-1,"_Passwort_Vergessen")
$bNeuAcc = GUICtrlCreateButton("Neu Registrieren", 160, 88, 115, 25, 0)
GUICtrlSetOnEvent(-1,"_NeuAccGUI")
$Label2 = GUICtrlCreateLabel("Registrierungsnummer", 168, 56, 108, 17)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Neu", 199, 349)
$iName = GUICtrlCreateInput("", 24, 48, 153, 21)
$iAntwort = GUICtrlCreateInput("", 24, 128, 153, 21)
$iNummer = GUICtrlCreateInput("", 24, 184, 121, 21)
$iNachname = GUICtrlCreateInput("", 24, 248, 121, 21)
$Label1 = GUICtrlCreateLabel("Name für Highscore/Login", 24, 24, 129, 17)
$Label2 = GUICtrlCreateLabel("Geheimwort, wenn du dein"& @CRLF &"PW vergessen solltest", 24, 80, 238, 41)
$Button1 = GUICtrlCreateButton("Bestätigen", 24, 280, 155, 65, 0)
GUICtrlSetOnEvent(-1,"_NeuAccBestaetigen")
$Label3 = GUICtrlCreateLabel("Rechnernummer", 24, 160, 82, 17)
$Label4 = GUICtrlCreateLabel("Nachname, zur Identifikation", 24, 216, 139, 17)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Close2")
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###
#Region ### START Koda GUI section ### Form=
$Form3 = GUICreate("Passwort Vergessen", 246, 142)
$PWVergessenName = GUICtrlCreateInput("", 24, 16, 121, 21)
$Label15 = GUICtrlCreateLabel("Name", 160, 16, 32, 17)
$PWVergessenWort = GUICtrlCreateInput("", 24, 48, 121, 21)
$Label25 = GUICtrlCreateLabel("Geheimwort", 160, 48, 60, 17)
$GETPW = GUICtrlCreateButton("Passwortanfrage", 24, 80, 195, 41, 0)
GUICtrlSetOnEvent(-1,"_Get_PW")
GUISetOnEvent($GUI_EVENT_CLOSE, "_Close3")
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###
While 1
Sleep(50)
WEnd
Func _Login()
Local $ID,$PW, $NR, $i, $g , $maxConfigs = 1, $maxCheck = False
$ID = GUICtrlRead($LogID)
$NR = GUICtrlRead($LogNR)
GUICtrlSetData($LogID,"")
GUICtrlSetData($LogNR,"")
$PW = InputBox("Passwort","Gib hier dein Passwort ein","","*")
While $maxCheck = False
if FileExists("C:\Users\Nico\Desktop\Schule\" & $NR & "\config" & $maxConfigs & ".ini") Then
$maxConfigs += 1
Else
$maxCheck = True
$maxConfigs -= 1
If $maxConfigs = 0 Then $maxConfigs = 1
EndIf
WEnd
MsgBox(0,"",$maxConfigs)
For $g = 1 To $maxConfigs
$Name = IniRead("C:\Users\Nico\Desktop\Schule\" & $NR & "\config" & $g & ".ini","Name","Name",0)
$Passwort = IniRead("C:\Users\Nico\Desktop\Schule\" & $NR & "\config" & $g & ".ini","Passwort","Passwort",0)
If $Name = $ID and $Passwort = $PW Then
MsgBox(64,"Login","Login Erfolgt...",2000)
; #include 'Defender.au3'
ExitLoop
EndIf
Next
EndFunc
Func _Get_PW()
Local $PWN, $PWW, $i, $j, $h, $maxConfigs = 1,$maxCheck = False,$PassWort,$RechnerNr,$LoginPW
$PWN = GUICtrlRead($PWVergessenName)
$PWW = GUICtrlRead($PWVergessenWort)
GUICtrlSetData($PWVergessenName,"")
GUICtrlSetData($PWVergessenWort,"")
For $i = 1 To 10
For $j = 1 To 10
if FileExists("C:\Users\Nico\Desktop\Schule\" & $i & "\config" & $maxConfigs & ".ini") Then
$maxConfigs += 1
Else
$maxCheck = True
$maxConfigs -= 1
If $maxConfigs = 0 Then $maxConfigs = 1
EndIf
Next
For $g = 1 To $maxConfigs
$Name = IniRead("C:\Users\Nico\Desktop\Schule\" & $i & "\config" & $g & ".ini","Name","Name",0)
$PassWort = IniRead("C:\Users\Nico\Desktop\Schule\" & $i & "\config" & $g & ".ini","Wort","Wort",0)
If $Name = $PWN and $PassWort = $PWW Then
$RechnerNr = IniRead("C:\Users\Nico\Desktop\Schule\" & $i & "\config" & $g & ".ini","Rechner","Nummer",0)
$LoginPW = IniRead("C:\Users\Nico\Desktop\Schule\" & $i & "\config" & $g & ".ini","Passwort","Passwort",0)
MsgBox(64,"Daten","Name: "& $Name & @CRLF & "Passwort: "& $LoginPW & @CRLF & "Rechner Nr.: " & $RechnerNr)
_Close3()
ExitLoop
EndIf
Next
Next
EndFunc
Func _Passwort_Vergessen()
GUISetState(@SW_SHOW,$Form3)
GUISetState(@SW_HIDE,$Form1)
EndFunc
Func _NeuAccBestaetigen()
Global $sName = GUICtrlRead($iName)
Global $sAntwort = GUICtrlRead($iAntwort)
Global $intNummer = Int(GUICtrlRead($iNummer))
Global $sNachname = GUICtrlRead($iNachname)
Local $check = False
Local $k = 0
Local $n = 1
Local $pw
Global $newAcc = True
_AccVergleich()
[/autoit] [autoit][/autoit] [autoit]If $newAcc = True Then
$pw = InputBox("Passwort","Bitte gib dein Passwort ein, es wird keine 2 abfrage kommen!","","*")
While $check = False
$k += 1
if not FileExists("C:\Users\Nico\Desktop\Schule\" & $intNummer & "\config" & $k & ".ini") Then
$check = True
EndIf
WEnd
IniWrite("C:\Users\Nico\Desktop\Schule\" & $intNummer & "\config" & $k & ".ini","Name","Name",$sName)
IniWrite("C:\Users\Nico\Desktop\Schule\" & $intNummer & "\config" & $k & ".ini","Name","Nachname",$sNachname)
IniWrite("C:\Users\Nico\Desktop\Schule\" & $intNummer & "\config" & $k & ".ini","Rechner","Nummer",$intNummer)
IniWrite("C:\Users\Nico\Desktop\Schule\" & $intNummer & "\config" & $k & ".ini","Wort","Wort",$sAntwort)
IniWrite("C:\Users\Nico\Desktop\Schule\" & $intNummer & "\config" & $k & ".ini","Passwort","Passwort",$pw)
$k = 0
If Not @error Then
MsgBox(64,"Erfolg","Account erfolgreich angelegt!")
GUICtrlSetData($iName,"")
GUICtrlSetData($iAntwort,"")
GUICtrlSetData($iNummer,"")
GUICtrlSetData($iNachname,"")
_Close2()
Else
MsgBox(64,"Error","Es gab folgende Error meldung: " & @error)
EndIf
EndIf
$newAcc = False
EndFunc
Func _AccVergleich()
Local $i, $g ,$Name, $Nachname, $j
Local $maxConfigs = 1
Local $maxCheck = False
For $i = 1 To 10
For $j = 1 To 10
if FileExists("C:\Users\Nico\Desktop\Schule\" & $i & "\config" & $maxConfigs & ".ini") Then
$maxConfigs += 1
Else
$maxCheck = True
$maxConfigs -= 1
If $maxConfigs = 0 Then $maxConfigs = 1
EndIf
Next
For $g = 1 To $maxConfigs
$Name = IniRead("C:\Users\Nico\Desktop\Schule\" & $i & "\config" & $g & ".ini","Name","Name",0)
$Nachname = IniRead("C:\Users\Nico\Desktop\Schule\" & $i & "\config" & $g & ".ini","Name","Nachname",0)
If $Name = $sName and $Nachname = $sNachname Then
MsgBox(64,"Error","Du hast bereits einen Account")
$newAcc = False
ExitLoop
EndIf
Next
Next
EndFunc
Func _Close3()
GUISetState(@SW_SHOW, $Form1)
GUISetState(@SW_HIDE, $Form3)
EndFunc
Func _NeuAccGUI()
GUISetState(@SW_SHOW, $Form2)
GUISetState(@SW_HIDE, $Form1)
EndFunc
Func _Close2()
GUISetState(@SW_SHOW, $Form1)
GUISetState(@SW_HIDE, $Form2)
EndFunc
Func _Exit()
Exit
EndFunc
Ich weiß, der loginner ist nicht sauber geskript, man könnte ihn bestimmt verbessern. Aber viele sachen müssen sogar soo umstendlich sein, da es eine Speicher funktion für unsere Schule werden soll.
hier das Spiele Skript(ein dank an Marsi& developer):
[autoit]#include <GUIConstants.au3>
#include <GDIPlus.au3>
#include <Misc.au3>
#include <Array.au3>
Opt('GUICloseOnESC', 0) ; Beenden mit Esc ?
Opt('GUIOnEventMode', 1) ; Event Mode
Opt('MustDeclareVars', 1) ; Variablen müssen deklariert werden. (sauberes Programmieren nötig)
Opt('MouseCoordMode', 2) ; Mauskoordinaten relativ zum Fenster
Global Const $iBreite = 800, $iHoehe = 400, $iReihen = 10, $iDiagonale = Sqrt($iBreite^2+$iHoehe^2)
[/autoit] [autoit][/autoit] [autoit]; Bei 10 Reihen ist oben und unten jeweils eine halbe Reihe Luft. Daher sind nur 9 verfügbar. (Reihe 1 bis 9)
[/autoit] [autoit][/autoit] [autoit]Global $hGUI, $hGFX, $hBMP, $hBUF, $hBrush[8], $hPen[1], $aPos[2]
[/autoit] [autoit][/autoit] [autoit]Global $Gegner[1][4]
; 0 = X - Koordinate
; 1 = Y - Koordinate
; 2 = Farbe (eine Zahl für die Brush)
; 4 = Zustand (True=Lebend oder False=Tod). Ist der Gegner Tod wird er nicht mehr gezeichnet und nach maximal einem Frame gelöscht !
Global $Pfeile[1][6]
;~ für erste dimension wert 1, da noch kein pfeil existiert und 1 der minimalwert ist
;~ [x][0] = X Koordinate
;~ [x][1] = Y Koordinate
;~ [x][2] = Vx ( Vektor in X Richtung )
;~ [x][3] = Vy ( Vektor in Y Richtung )
;~ [x][4] = Pfeilgeschwindigkeit in Px/Frame
;~ [x][5] = Anzahl zurückgelegte Pixel auf dem Spielfeld z.B. wird er nach 1000 Pixeln nicht mehr auf dem Feld sein. Das Spaart die Kollisionskontrolle mit dem Pfeil und dem Spielfeld !
_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGUI = GUICreate("Defender", $iBreite, $iHoehe)
$hGFX = _GDIPlus_GraphicsCreateFromHWND($hGUI)
$hBMP = _GDIPlus_BitmapCreateFromGraphics($iBreite, $iHoehe, $hGFX)
$hBUF = _GDIPlus_ImageGetGraphicsContext($hBMP)
$hBrush[0] = _GDIPlus_BrushCreateSolid(0xFF00592A) ; Weiss
$hBrush[1] = _GDIPlus_BrushCreateSolid(0xFF91AAB9) ; Armbrust
$hBrush[2] = _GDIPlus_BrushCreateSolid(0xFF630304) ; Gegner 1
$hBrush[3] = _GDIPlus_BrushCreateSolid(0xFF2E5B92) ; Gegner 2
$hBrush[4] = _GDIPlus_BrushCreateSolid(0xFFFDD00A) ; Gegner 3
$hBrush[5] = _GDIPlus_BrushCreateSolid(0xFF65583A) ; Gegner 4
$hBrush[6] = _GDIPlus_BrushCreateSolid(0xFF000000) ; Gegner 5
$hBrush[7] = _GDIPlus_BrushCreateSolid(0xFF540072) ; Schuss der Armbrust
$hPen[0] = _GDIPlus_PenCreate(0xFF91AAB9, 4)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsSetSmoothingMode($hBUF, 4)
[/autoit] [autoit][/autoit] [autoit]GUISetOnEvent(-3, '___Exit', $hGUI) ; Exit
OnAutoItExitRegister('_Freigeben') ; Beim Beenden auch alle Ressourcen freigeben.
GUIRegisterMsg(0xF, 'WM_PAINT') ; Neu Zeichnen, wenn Windows das gerne so hätte...
GUISetState(@SW_SHOW)
_AddPfeil() ; Den Timer starten, damit der erste Schuss früher geht.
[/autoit] [autoit][/autoit] [autoit]While Sleep(20) ; Bessere Variante, als das Sleep unten hin zu schreiben. Ein Sleep kann nur 10, 20, 30 usw sein. Alle anderen Werte funktionieren nicht richtig... (Eigentheit von AutoIt)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsClear($hBUF, 0xFF00592A)
[/autoit] [autoit][/autoit] [autoit]$aPos = MouseGetPos() ; Mausposition bei jedem Schleifendurchlauf nur ein Mal holen reicht aus.
[/autoit] [autoit][/autoit] [autoit]_AddPfeil() ; Man drückt die Linke Maustaste ? --> Feuer ! If _IsPressed('01') Then
[/autoit] [autoit][/autoit] [autoit]_ZeichnePfeile()
_ZeichneGegner()
_ZeichneArmbrust()
If UBound($Gegner) < 15 And Not Random(0, 30, 1) Then _AddGegner(Random(1, 9, 1))
[/autoit] [autoit][/autoit] [autoit]; ToolTip('Anzahl Gegner: ' & UBound($Gegner) - 1 & @CRLF & 'Anzahl Pfeile: ' & UBound($Pfeile) - 1)
[/autoit] [autoit][/autoit] [autoit]WM_PAINT()
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _ZeichneArmbrust()
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsFillEllipse($hBUF, -25, $iHoehe / 2 - 25, 50, 50, $hBrush[1])
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_ZeichneArmbrust
[/autoit] [autoit][/autoit] [autoit]Func _ZeichneGegner()
[/autoit] [autoit][/autoit] [autoit]Local $iUbound = UBound($Gegner) ; So viele gegner gibt es !
Local $aKlon[$iUbound] ; Klon Array.
For $i = 1 To $iUbound - 1 Step 1 ; Im 0ten Array steht nix. Daher wird bei 1 begonnen.
[/autoit] [autoit][/autoit] [autoit]If $Gegner[$i][3] = False Then
$aKlon[$i] = 1 ; Toten Gegner löschen
ContinueLoop ; Wenn der Gegner Tod ist wird sein Schleifendurchlauf übersprungen.
EndIf
$Gegner[$i][0] -= 2 ; Bewegen in X Richtung
[/autoit] [autoit][/autoit] [autoit]If $Gegner[$i][0] <= - 50 Then $aKlon[$i] = 1 ; Wenn der Gegner hinten ist, wird er gelöscht.
; Später kommt hier hin, dass der Gegner von einem Pfeil getroffen wird oder sowas.
; Verschoben. Die Abfrage kommt zu den Pfeilen. Das ist aber reine Geschmackssache...
_GDIPlus_GraphicsFillEllipse($hBUF, $Gegner[$i][0]-25, $Gegner[$i][1]-25, 50, 50, $hBrush[$Gegner[$i][2]])
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]_DelGegner($aKlon)
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _ZeichnePfeile()
[/autoit] [autoit][/autoit] [autoit]Local $iUbound = UBound($Pfeile) ; so viele Pfeile gib es
Local $iUbound_Gegner ; und so viele Gegner. Muss hier noch nicht bestimmt werden.
Local $aKlon[$iUbound] ; Klon
For $i = 1 To $iUbound - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]$Pfeile[$i][0] += $Pfeile[$i][2] * $Pfeile[$i][4]
$Pfeile[$i][1] += $Pfeile[$i][3] * $Pfeile[$i][4]
$Pfeile[$i][5] += $Pfeile[$i][4] ; Zurückgelegte Strecke in Pixeln.
[/autoit] [autoit][/autoit] [autoit]If $Pfeile[$i][5] > $iDiagonale Then ; Der Pfeil ist weiter geflogen als die Diagonale des Fensters --> Er ist Weg...
$aKlon[$i] = 1
ContinueLoop
EndIf
$iUbound_Gegner = UBound($Gegner)
[/autoit] [autoit][/autoit] [autoit]For $o = 1 To $iUbound_Gegner - 1 Step 1
If _Kollision_Kreis_Kreis($Gegner[$o][0], $Gegner[$o][1], $Pfeile[$i][0], $Pfeile[$i][1], 50,10) Then
$aKlon[$i] = 1 ; Pfeil Löschen
$Gegner[$o][3] = False ; Gegner lebt nicht mehr...
ExitLoop ; Der Pfeil ist weg --> Er kann auch keinen weiteren Gegner treffen --> Der "Gegner Treff Loop" kann beendet werden.
; Entfernt man diese Zeile können zwei dicht zusammenstehende Gegner von einem einzigen Pfeil getroffen werden.
EndIf
Next
If $aKlon[$i] = 0 Then ; Nur zeichnen, wenn der Pfeil noch keinen Gegner getroffen hat.
_GDIPlus_GraphicsFillEllipse($hBUF, $Pfeile[$i][0]-5, $Pfeile[$i][1] - 5, 10, 10, $hBrush[7])
EndIf
Next
[/autoit] [autoit][/autoit] [autoit]_DelPfeil($aKlon)
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_ZeichnePfeil
[/autoit] [autoit][/autoit] [autoit]Func _AddGegner($Reihe)
[/autoit] [autoit][/autoit] [autoit]Local $iUbound = UBound($Gegner) ; Wie viele Gegner gibt es ?
ReDim $Gegner[$iUbound + 1][UBound($Gegner, 2)] ; Jetzt gibt es einen Mehr !
$Gegner[$iUbound][0] = $iBreite + 50 ; x
$Gegner[$iUbound][1] = Int(($iHoehe / $iReihen) * $Reihe) ; y
$Gegner[$iUbound][2] = Random(2, 6, 1) ; Farbe
$Gegner[$iUbound][3] = True ; Zu Beginn lebt der Gegner logischerweise.
EndFunc ;==>_AddGegner
[/autoit] [autoit][/autoit] [autoit]Func _AddPfeil()
[/autoit] [autoit][/autoit] [autoit]Local Static $iTimer = TimerInit() ; Static Variablen behalten ihren Wert. d.h. Der Timer braucht nicht Global zu sein.
[/autoit] [autoit][/autoit] [autoit]If TimerDiff($iTimer) > 750 Then ; 750ms für den Anfang sind OK. Später kann man den Wert noch skillen um schneller zu schießen.
$iTimer = TimerInit()
Local $iUbound = UBound($Pfeile) ; Hinter den Timer. Dann wird das nur Ausgeführt, wenn es sein muss. -> Programm läuft ein gaaaaanz kleines etwas schneller, aber Kleinvieh macht auch Mist
ReDim $Pfeile[$iUbound + 1][UBound($Pfeile, 2)]
Local $aVektor[2] = [$aPos[0],$aPos[1]-$iHoehe/2]
_EinheitsVektor($aVektor) ;
$Pfeile[$iUbound][0] = 0
$Pfeile[$iUbound][1] = $iHoehe/2
$Pfeile[$iUbound][2] = $aVektor[0]
$Pfeile[$iUbound][3] = $aVektor[1]
$Pfeile[$iUbound][4] = 7 ; Geschwindigkeit des Pfeils in px/Frame
EndIf
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_AddPfeil
[/autoit] [autoit][/autoit] [autoit]Func _EinheitsVektor(ByRef $a) ; Ein beliebig "langer" Vektor (z.B. ( 1000 | 1000 )) wird zu einem Einheitsvektor der Länge 1 $a muss 2Dimensional sein ! $a[2]
Local $b = ($a[0]^2+$a[1]^2)^0.5
$a[0] = $a[0]/$b
$a[1] = $a[1]/$b
EndFunc
Func _DelGegner($aKlon) ; Es können ja auch mal 2 Gegner gleichzeitig sterben. Daher wird ein Klonarray eingeführt, welches aber nur nullen enthält.
For $i = UBound($aKlon) - 1 To 1 Step -1 ; Ist ein Gegner Tot wird dieser Wert auf 1 gesetzt.
If $aKlon[$i] = 1 Then _ArrayDelete($Gegner, $i)
Next
EndFunc ;==>_DeleteGegner
Func _DelPfeil(ByRef $aKlon)
For $i = UBound($aKlon) - 1 To 1 Step -1 ; Genau gleich wie _DelGegner
If $aKlon[$i] = 1 Then _ArrayDelete($Pfeile, $i)
Next
EndFunc ;==>_DelPfeil
Func _Kollision_Kreis_Kreis($x1, $y1, $kx, $ky, $d, $d2) ; Kollisionsberechnung von 2 Kreisen. (aus dem Forum kopiert. Die Funktion hab ich iwann mal entworfen und kürzlich auch im Forum gepostet)
Return (($x1 - $kx) ^ 2 + ($y1 - $ky) ^ 2) ^ 0.5 < ($d / 2 + $d2 / 2)
EndFunc ;==>_Kollision_Kreis_Kreis
Func WM_PAINT()
_GDIPlus_GraphicsDrawImage($hGFX, $hBMP, 0, 0)
EndFunc ;==>WM_PAINT
Func _Freigeben()
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsDispose($hBUF)
_GDIPlus_BitmapDispose($hBMP)
_GDIPlus_GraphicsDispose($hGFX)
For $i = 0 To UBound($hBrush) - 1 Step 1
_GDIPlus_BrushDispose($hBrush[$i])
Next
For $i = 0 To UBound($hPen) - 1 Step 1
_GDIPlus_PenDispose($hPen[$i])
Next
_GDIPlus_Shutdown()
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Freigeben
[/autoit] [autoit][/autoit] [autoit]Func ___Exit()
Exit
EndFunc ;==>___Exit
Ich hoffe mal ihr versteht wie ich es meine & ihr wisste wie man es lösen kan
MfG Nico