Ich hab dir doch gesagt, dass das Script nach GUIDelete einfach mit der ENDLOSSCHLEIFE weiter macht.
Da muss schon noch ein ExitLoop o.Ä. rein. ![]()
Beiträge von name22
-
-
Zitat
Wenn du mir jetzt noch verrätst wie ich auf die Controls komme ohne sie vorher zu kennen
Das geht nicht, außer du versuchst es mit Raten.
Wo liegt denn das Problem bei der Window Info? -
Zitat
name22 du bist ein GENIE!
Nein, ich schaue nur hin und wieder in die Hilfe.
-
Das Script hängt bei mir nirgendwo...

Die GUI wird gelöscht und die Endlosschleife fortgeführt, also wo liegt jetzt das Problem? -
Zitat
Habe auch mal mit ControlClick versucht den taschenrechner zu steuern...
geht aber nicht!
Sicher?
Spoiler anzeigen
[autoit]Run("calc")
[/autoit]
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:7]")
Sleep(500)
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:11]")
Sleep(500)
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:15]")
Sleep(500)
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:6]")
Sleep(500)
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:10]")
Sleep(500)
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:20]")
Sleep(500)
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:7]")
Sleep(500)
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:11]")
Sleep(500)
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:15]")
Sleep(500)
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:6]")
Sleep(500)
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:10]")
Sleep(1000)
ControlClick("Rechner", "", "[CLASS:Button; INSTANCE:21]") -
Hier die Funktion und ein Beispiel dazu.

Benötigt wird die GDIP.au3 (Anhang).
Ich hoffe, dass irgendjemand das gebrauchen kann.
Ich enstschuldige mich schon mal im vorraus für die schlecht formulierte Beschreibung. 
Funktion:
Spoiler anzeigen
[autoit]; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name...........: _GDIPlus_PathBrushCreatePie
; Beschreibung ..: Erstellt einen Farbverlauf in Form eines "Kuchens" (Teil eines Kreises) mit 2 Farben eine beginnend in der Mitte der Ellipse aus der der "Kuchen" erstellt wird und eine die auf dem Umkreis der Ellipse verläuft.
; Syntax.........: _GDIPlus_PathBrushCreatePie($iX, $iY, $iWidth, $iHeight, $iStartAngle, $iSweepAngle, $ARGB_Center, $ARGB_Surround, [$iWrapMode = 4])
; Parameter .....: $iX - X - Koordinate der linken oberen Ecke des Rechtecks aus dem die Ellipse des Kuchenstücks erstellt wird
; $iY - Y - Koordinate der linken oberen Ecke des Rechtecks aus dem die Ellipse des Kuchensstücks erstellt wird
; $iWidth - Breite der Ellipse
; $iHeight - Höhe der Ellipse
; $iStartAngle - Startwinkel des Kuchenstücks
; $iSweepAngle - Winkel der zum Startwinkel addiert wird und den Endwinkel bestimmt (Ein negativer Wert bedeutet eine "Rotation" nach links)
; $ARGB_Center - Farbe für den Mittelpunkt der Ellipse
; $ARGB_Surround - Farbe für den Umkreis der Ellipse
; $iWrapMode - Wrap mode der die Aufteilung und die Spiegelung des Brushes definiert (Standard 4):
; |0 - Teilen ohne spiegeln
; |1 - Teile werden horizontal gespiegelt wenn die Größe des Brush in X Richtung überschritten wird
; |2 - Teile werden vertikal gespiegelt wenn die Größe des Brush in Y Richtung überschritten wird
; |3 - Kombination aus 1 und 2
; |4 - Keine Teilung
; Rückgabewerte .: Success - Pointer zu einem neuen Brush Objekt
; Failure - -1 und setzt @error:
; |1 - $iSweepAngle ist = 0
; Bemerkungen ...: Um die Ressourcen für den Brush freizugeben, muss _GDIPlus_BrushDispose aufgerufen werden
; Autor .........: name22 @ http://www.autoit.de/
; ===============================================================================================================================
Func _GDIPlus_PathBrushCreatePie($iX, $iY, $iWidth, $iHeight, $iStartAngle, $iSweepAngle, $ARGB_Center, $ARGB_Surround, $iWrapMode = 4)
Local Const $Pi_Div_180 = ACos(-1) / 180If $iStartAngle <= 0 Then $iStartAngle = 1
[/autoit] [autoit][/autoit] [autoit]
If $iSweepAngle = 0 Then Return SetError(1, 0, -1)
If $iSweepAngle < 0 Then
$iSweepAngle *= -1
$iStartAngle = 360 - $iSweepAngle + $iStartAngle
EndIfDim $aPoints_Path[$iSweepAngle + 2][2]
[/autoit] [autoit][/autoit] [autoit]
$aPoints_Path[0][0] = $iSweepAngle + 1
$iI = 1
For $i = $iStartAngle To $iStartAngle + $iSweepAngle - 1
$aPoints_Path[$iI][0] = $iX + $iWidth / 2 + Cos(($i - 90) * $Pi_Div_180) * $iWidth / 2
$aPoints_Path[$iI][1] = $iY + $iHeight / 2 + Sin(($i - 90) * $Pi_Div_180) * $iHeight / 2
$iI += 1
Next
$aPoints_Path[UBound($aPoints_Path) - 1][0] = $iX + $iWidth / 2
$aPoints_Path[UBound($aPoints_Path) - 1][1] = $iY + $iHeight / 2Dim $aColors_Path[$iSweepAngle + 1]
[/autoit] [autoit][/autoit] [autoit]
$aColors_Path[0] = $iSweepAngle
$iI = 1
For $i = $iStartAngle To $iStartAngle + $iSweepAngle - 1
$aColors_Path[$iI] = $ARGB_Surround
$iI += 1
Next$hBrush_Pie = _GDIPlus_PathBrushCreate($aPoints_Path, $iWrapMode)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_PathBrushSetCenterPoint($hBrush_Pie, $iX + $iWidth / 2, $iY + $iHeight / 2)
_GDIPlus_PathBrushSetCenterColor($hBrush_Pie, $ARGB_Center)
_GDIPlus_PathBrushSetSurroundColorsWithCount($hBrush_Pie, $aColors_Path)Return $hBrush_Pie
[/autoit]
EndFunc ;==>_GDIPlus_PathBrushCreatePieBeispiel:
Spoiler anzeigen
[autoit]#include <GDIP.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>$hWnd = GUICreate("Example by name22", 200, 200)
[/autoit] [autoit][/autoit] [autoit]
GUISetState()_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 2)$hBrush = _GDIPlus_PathBrushCreatePie(0, 0, 100, 100, 180, -270, 0xFFFF0000, 0x00000000)
[/autoit] [autoit][/autoit] [autoit]
$hBrush2 = _GDIPlus_PathBrushCreatePie(0, 100, 100, 100, 90, 270, 0xFF0000FF, 0x00000000)_GDIPlus_GraphicsFillRect($hGraphic, 0, 0, 100, 100, $hBrush)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsFillRect($hGraphic, 0, 100, 100, 100, $hBrush2)_GDIPlus_GraphicsDispose($hGraphic)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_BrushDispose($hBrush2)
_GDIPlus_Shutdown()Do
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Until GUIGetMsg() = $GUI_EVENT_CLOSE; #FUNCTION# ====================================================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name...........: _GDIPlus_PathBrushCreatePie
; Beschreibung ..: Erstellt einen Farbverlauf in Form eines "Kuchens" (Teil eines Kreises) mit 2 Farben eine beginnend in der Mitte der Ellipse aus der der "Kuchen" erstellt wird und eine die auf dem Umkreis der Ellipse verläuft.
; Syntax.........: _GDIPlus_PathBrushCreatePie($iX, $iY, $iWidth, $iHeight, $iStartAngle, $iSweepAngle, $ARGB_Center, $ARGB_Surround, [$iWrapMode = 4])
; Parameter .....: $iX - X - Koordinate der linken oberen Ecke des Rechtecks aus dem die Ellipse des Kuchenstücks erstellt wird
; $iY - Y - Koordinate der linken oberen Ecke des Rechtecks aus dem die Ellipse des Kuchensstücks erstellt wird
; $iWidth - Breite der Ellipse
; $iHeight - Höhe der Ellipse
; $iStartAngle - Startwinkel des Kuchenstücks
; $iSweepAngle - Winkel der zum Startwinkel addiert wird und den Endwinkel bestimmt (Ein negativer Wert bedeutet eine "Rotation" nach links)
; $ARGB_Center - Farbe für den Mittelpunkt der Ellipse
; $ARGB_Surround - Farbe für den Umkreis der Ellipse
; $iWrapMode - Wrap mode der die Aufteilung und die Spiegelung des Brushes definiert (Standard 4):
; |0 - Teilen ohne spiegeln
; |1 - Teile werden horizontal gespiegelt wenn die Größe des Brush in X Richtung überschritten wird
; |2 - Teile werden vertikal gespiegelt wenn die Größe des Brush in Y Richtung überschritten wird
; |3 - Kombination aus 1 und 2
; |4 - Keine Teilung
; Rückgabewerte .: Success - Pointer zu einem neuen Brush Objekt
; Failure - -1 und setzt @error:
; |1 - $iSweepAngle ist = 0
; Bemerkungen ...: Um die Ressourcen für den Brush freizugeben, muss _GDIPlus_BrushDispose aufgerufen werden
; Autor .........: name22 @ http://www.autoit.de/
; ===============================================================================================================================
Func _GDIPlus_PathBrushCreatePie($iX, $iY, $iWidth, $iHeight, $iStartAngle, $iSweepAngle, $ARGB_Center, $ARGB_Surround, $iWrapMode = 4)
Local Const $Pi_Div_180 = ACos(-1) / 180If $iStartAngle <= 0 Then $iStartAngle = 1
[/autoit] [autoit][/autoit] [autoit]
If $iSweepAngle = 0 Then Return SetError(1, 0, -1)
If $iSweepAngle < 0 Then
$iSweepAngle *= -1
$iStartAngle = 360 - $iSweepAngle + $iStartAngle
EndIfDim $aPoints_Path[$iSweepAngle + 2][2]
[/autoit] [autoit][/autoit] [autoit]
$aPoints_Path[0][0] = $iSweepAngle + 1
$iI = 1
For $i = $iStartAngle To $iStartAngle + $iSweepAngle - 1
$aPoints_Path[$iI][0] = $iX + $iWidth / 2 + Cos(($i - 90) * $Pi_Div_180) * $iWidth / 2
$aPoints_Path[$iI][1] = $iY + $iHeight / 2 + Sin(($i - 90) * $Pi_Div_180) * $iHeight / 2
$iI += 1
Next
$aPoints_Path[UBound($aPoints_Path) - 1][0] = $iX + $iWidth / 2
$aPoints_Path[UBound($aPoints_Path) - 1][1] = $iY + $iHeight / 2Dim $aColors_Path[$iSweepAngle + 1]
[/autoit] [autoit][/autoit] [autoit]
$aColors_Path[0] = $iSweepAngle
$iI = 1
For $i = $iStartAngle To $iStartAngle + $iSweepAngle - 1
$aColors_Path[$iI] = $ARGB_Surround
$iI += 1
Next$hBrush_Pie = _GDIPlus_PathBrushCreate($aPoints_Path, $iWrapMode)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_PathBrushSetCenterPoint($hBrush_Pie, $iX + $iWidth / 2, $iY + $iHeight / 2)
_GDIPlus_PathBrushSetCenterColor($hBrush_Pie, $ARGB_Center)
_GDIPlus_PathBrushSetSurroundColorsWithCount($hBrush_Pie, $aColors_Path)Return $hBrush_Pie
[/autoit]
EndFunc ;==>_GDIPlus_PathBrushCreatePie -
Du musst Icons verwenden.

PNGs funktionieren nicht mit Pic Controls (ja das steht auch in der Hilfe :D). -
Zitat
lol, lol, lol
du noob
Halt mal ieber die Luft an!
Sowas kann jedem passieren und dafür beleidigst du ihn?
Sei doch ein wenig produktiver.
Nebenbei cooles Script UEZ.

-
Wie wäre es mit einem sich ständig auf der Y-Achse vergrößernden Label, in das du @CRLF und die aktuelle Zeile einfügst.
Ansonsten fällt mir nur GDI+ ein, wobei das auch nicht allzu schwer sein dürfte.
-
@crocojunk
Sag mal hast du vor etwas zu lernen? -
peethebee ist hier der Chef.

-
Meinst du so?
Spoiler anzeigen
[autoit]$xoldArraynum1 = 1
[/autoit] [autoit][/autoit] [autoit]
$yoldArraynum1 = 2If $xoldArraynum1 <> 1 And $xoldArraynum1 = 9 And ($yoldArraynum1 = 0 Or $yoldArraynum1 = 2 Or $yoldArraynum1 = 4 Or $yoldArraynum1 = 6 Or $yoldArraynum1 =
[/autoit]
Then
MsgBox(0, "2", "2te")
MsgBox(0, "Nummern", $xoldArraynum1 & ", " & $yoldArraynum1)
$xhelp1 = $xoldArraynum1
$yhelp1 = $yoldArraynum1+1
$xoldArraynum1 = $xhelp1
$yoldArraynum1 = $yhelp1
MsgBox(0, "Nummern", $xoldArraynum1 & ", " & $yoldArraynum1)
Sleep(500)
EndIf -
Zitat
Gibt es da bestimmte Standards?
Standards? Ich würde es so machen, dass jeder der den Code verstehen soll ihn auch verstehen kann.
Präfixe wie h, b, f etc.. verwende ich auch nur wenn sie mir in diesem Zusammenhang logisch erscheinen.
-
Wenn man schon in den Backbuffer zeichnet, sollte man ihn auch auf den Frontbuffer bringen.

Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstants.au3>
#include <Misc.au3>Global $GuiWidth = 600
[/autoit] [autoit][/autoit] [autoit]
Global $GuiHeight = 600
Global $iX = 100
Global $iY = 100
Global $piewidth = 0
Global $pieheight = 320$form = GUICreate ("Test", 600,600)
[/autoit] [autoit][/autoit] [autoit]
$hwnd = WinGetHandle ($form)
GUISetBkColor (0x000000)
GUISetState (@SW_SHOW)_GDIPlus_Startup ()
[/autoit] [autoit][/autoit] [autoit]$hGraphics = _GDIPlus_GraphicsCreateFromHWND ($hwnd)
[/autoit] [autoit][/autoit] [autoit]
$hBitmap = _GDIPlus_BitmapCreateFromGraphics($GUIWidth, $GUIHeight, $hGraphics)
$hBuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsSetSmoothingMode($hBuffer, 2)
$pac = _GDIPlus_BrushCreateSolid (0xFFFFFF00)
_GDIPlus_GraphicsFillPie ($hgraphics, 100,100, 50, 50, 0, 320, $pac)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
If _IsPressed ("25") Then
$iX -= 3
Draw()
EndIf
If _IsPressed ("26") Then
$iY -=3
Draw()
EndIf
If _IsPressed ("27") Then
$iX +=3
Draw()
EndIf
If _IsPressed ("28") Then
$iY +=3
Draw()
EndIf
WEndFunc Draw()
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsClear($hBuffer)
_GDIPlus_GraphicsFillPie ($hBuffer, $iX,$iY,50,50,0,320,$pac)
_GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $GUIWidth, $GuiHeight)
EndFuncFunc _Exit()
[/autoit]
_GDIPlus_BrushDispose($pac)
_GDIPlus_GraphicsDispose($hBuffer)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_Shutdown()
EndFunc
@crocojunk Meinst du nicht, dass Pacman ein wenig zu hoch gegriffen ist? Fang doch erstmal mit was leichtem an.
-
Zitat
weis das niemand ?
Gut möglich.
Ich hab es nach langer Google Befragung und GDI+ Versuchen jedenfalls aufgegeben.
Vielleicht findet ja noch jemand eine Lösung.
-
Nett.

Das ist ein gutes Beispiel für... naja es wird wohl schon zu irgendetwas gut sein.
Prima gemacht auf jeden Fall. -
Für einen Tacho? Ich würde da eher ein Bild mit der Nadel auf ein Bild mit dem Tacho zeichnen und das eben in einem bestimmten Winkel.
-
Verdammt ist das nervig.
Bitte hierlesen! -
Wünsche euch beiden alles Gute zum Geburtstag!
Nunja... Viel mehr hab ich hier auch nicht zu sagen, obwohl ich ja gerne noch was schreiben würde.
-
Wenn das in die Datei Geschriebene mit dem geprüften zusammenhängen soll, ist es auch mit jeder anderen Software unmöglich.
