Beiträge von UEZ
-
-
Ich war an der JWG Uni in FFM!
An der Uni/TH ist der Stoff sehr theoretisch, wobei an der FH mehr Praxis unterrichtet wird!
Ich musste sehr viel in Informatik und Mathe, und manchmal auch in Physik, beweisen!
Zeige dies, beweise, dass, etc.
Leistungskurs Mathe und Physik sollte es schon sein, ist aber keine Vorraussetzung!
Viel Spaß,
UEZ -
FH oder Uni/TH?
UEZ
-
Ich würde dir gerne helfen, aber mein Informatik Studium liegt zu lange zurück. Ich kann mich kaum noch an das Thema erinnern.
Warum erzähle ich das eigentlich?

Habt ihr bereits Turing Maschinen durchgenommen?
UEZ
-
Hier eine weitere Möglichkeit:
[autoit]
[/autoit][autoit][/autoit][autoit]
$Pfad = "C:\Program Files\Folder.net\"
$FileList = FileFindFirstFile($Pfad & "*.dll")
If $FileList= -1 Then
FileClose($FileList)
MsgBox(0, "Error", "Nichts gefunden! :-(")
Exit
EndIfWhile 1
[/autoit]
$file = FileFindNextFile($FileList)
If @error Then ExitLoop
;~ RunWait(@COMSPEC & " /c regsvr32 /s " & Chr (34) & $Pfad & $file & Chr (34) , "", @SW_HIDE)
ConsoleWrite(@ComSpec & ' /c regsvr32 /s "' & $Pfad & $file & '"' & @CRLF)
WEnd
FileClose($FileList)Gruß,
UEZ -
Hier meine Version modifiziert:
[autoit]
[/autoit][autoit][/autoit][autoit]
Global $aTokens1, $aTokens2, $i, $readline, $sData, $sIni$readline = "27x frettchen 84x bälle 39x hunde 2x katzen Summe: 434,40 euro"
[/autoit][autoit][/autoit][autoit]
$aTokens1 = StringSplit(StringLeft($readline, StringInStr($readline, " Summe:") - 1), " ")
$aTokens2 = StringSplit(StringRight($readline, StringLen($readline) - StringInStr($readline, ": ") - 1) , " ")$sIni = @ScriptDir & "\Waren.ini"
[/autoit]
For $i = 1 To UBound($aTokens1) - 2 Step 2
IniWriteSection($sIni, $aTokens1[$i + 1], "Anzahl=" & StringMid($aTokens1[$i], 1, StringLen($aTokens1[$i]) -1 ) & @LF)
Next
IniWriteSection($sIni, "Summe", $aTokens2[2] & "=" & $aTokens2[1] & @LF)
ExitGruß,
UEZ -
Liegt an deinen Style Werten, genauer gesagt am $WS_CLIPSIBLINGS!
-> $Pic1 = GUICtrlCreatePic(@ScriptDir & "\autoit_240x100.jpg", -1, -1, 240, 100)
Sollte jetzt das Bild anzeigen!
Gruß,
UEZ -
Oscar war wieder schneller
und seine Version ist besser (eben wird's poetisch)!Hier meine Version:
[autoit]
[/autoit][autoit][/autoit][autoit]
#include <Array.au3>
Global $aTokens, $i, $readline, $sData, $sIni$readline = "27x frettchen 84x bälle 39x hunde 2x katzen Summe: 434,40 euro"
[/autoit][autoit][/autoit][autoit]
$aTokens = StringSplit(StringLeft($readline, StringInStr($readline, " Summe:") - 1), " ")
;~ _ArrayDisplay($aTokens)For $i = 1 To UBound($aTokens) - 2 Step 2
[/autoit][autoit][/autoit][autoit]
;~ $sData &= $aTokens[$i + 1] & "=" & $aTokens[$i] & @LF ;mit x
$sData &= $aTokens[$i + 1] & "=" & StringMid($aTokens[$i], 1, StringLen($aTokens[$i]) -1 ) & @LF ;ohne x
Next$sIni = @ScriptDir & "\Waren.ini"
[/autoit]
IniWriteSection($sIni, "Waren", $sData)Ich muss mir mal die Funktion StringRegExp() rein ziehen. Scheint richtig mächtig zu sein!
Gruß,
UEZ -
Zu 7: Fragst du konkret Wikipedia
Gruß,
UEZ -
Workaround: ich weiß nicht, ob das funzt: In den Eigenschaften der Maus kann man die Option "Zeigerposition beim Drücken der STRG-Taste anzeigen" wählen. Vielleicht kannst du dann die Mausposition ungefähr sehen.
Vielleicht fällt mir zu GDI+ noch was ein, aber leider muss ich heute ins RZ nach Frankfurt.
Gruß,
UEZ -
GUISetState() muss vor der Zeichnung erfolgen und
_GDIPlus_GraphicsDrawImage($hGraphicsGUI, $hGraphicsBackBuffer, 0, 0) ist falsch hier!Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include-once
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
;~ #include <MouseSetOnEvent_UDF.au3>Opt("GUIOnEventMode", 1) ; Wechsle in den OnEvent Modus
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Opt('PixelCoordMode' ,0 ) ; 0 = relative coords to the defined window_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]
Global $hWnd_SC = GUICreate('GUI', 500, 500, -1, -1); $WS_CLIPCHILDREN;
GUISetState()
GUISetOnEvent($GUI_EVENT_CLOSE, "_exitMain")$hGraphicsGUI = _GDIPlus_GraphicsCreateFromHWnd($hWnd_SC)
[/autoit] [autoit][/autoit] [autoit]
$hBmpBackBuffer = _GDIPlus_BitmapCreateFromGraphics(500, 500, $hGraphicsGUI)
$hGraphicsBackBuffer = _GDIPlus_ImageGetGraphicsContext($hBmpBackBuffer); Vorzeichnen:
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDrawRect($hGraphicsBackBuffer, 10, 10, 100, 100); Auf GUI:
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDrawImageRect($hGraphicsGUI, $hBmpBackBuffer, 0, 0, 500, 500);~ SetGui()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
While True
Sleep(1000)
WEndFunc _exitMain()
[/autoit]
;~ _CollectGarbage()
; Aufräumen
_GDIPlus_GraphicsDispose($hGraphicsGUI)
_GDIPlus_GraphicsDispose($hGraphicsBackBuffer)
_GDIPlus_BitmapDispose($hBmpBackBuffer)
_GDIPlus_Shutdown()
Exit
EndFunc ;==> _exitMainGruß,
UEZ -
Drücke nach dem POST sofort F8. Wähle anschließend "Letzte funktioniernde Version" oder so ähnlich. Wenn das nicht klappen sollte, dann nochmals mit F8 nach dem POST in das Menu und im abgesicherten Modus hochfahren. Wenn du kein BS hast, solltest du die Protokolle System mal genauer anschauen. Vielleicht steht da ja was.
Ferner kannst du dann das automatische Rebooten nach einem BS abstellen (Systemeigenschaften -> Erweitert -> Starten und Wiederherstellen Einstellungen -> Automatisch Neustarten durchführen abwählen.Oder ein Repair mit der CD / DVD fahren.
Ansonsten sieht's schlecht aus...
Gruß,
UEZ -
Hast du dir mal Super Mario von eukalyptus angesehen? -> http://www.autoit.de/index.php?page=Board&boardID=48
Vielleicht denkst du zu kompliziert (tue ich i.d.R. auch)!
Gruß,
UEZ -
Sorry, hatte dich falsch verstanden (es ist bereits nach Mitternacht). Du willst gar nicht so eine GUI basteln, sondern die GUI kontrollieren, indem du den Radio Button und anschließend next drückst.
Hat die Exe keine Install Parameter, die eine Unattended Installation erlauben?
UEZ
-
[autoit]
[/autoit][autoit][/autoit][autoit]
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Blah Blah", 625, 445)
$Button1 = GUICtrlCreateButton("< Back", 360, 400, 75, 25)
$Button2 = GUICtrlCreateButton("Next >", 440, 400, 75, 25)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button3 = GUICtrlCreateButton("Cancel", 536, 400, 75, 25)
$Group1 = GUICtrlCreateGroup("", 0, 88, 624, 281)
$Edit1 = GUICtrlCreateEdit("", 40, 120, 537, 201, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
GUICtrlSetData(-1, "Blah Blah Blah..." & @CRLF & @CRLF & "Was guckst du? ;-)")
$Radio1 = GUICtrlCreateRadio("Accept", 40, 336, 57, 17)
$Radio2 = GUICtrlCreateRadio("Decline", 160, 336, 65, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Label1 = GUICtrlCreateLabel("Blah Blah Blah", 24, 8, 424, 78)
GUICtrlSetFont(-1, 48, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit]
$nMsg = GUIGetMsg()
Select
Case $nMsg = $GUI_EVENT_CLOSE
Exit
Case $nMsg = $Radio1
GUICtrlSetState($Button2, $GUI_ENABLE)
Case $nMsg = $Radio2
GUICtrlSetState($Button2, $GUI_DISABLE)
Case $nMsg = $Button2
MsgBox(0, "Blah Blah", "Das war's!")
Exit
Case $nMsg = $Button3
MsgBox(0, "Blah Blah", "Das war's!")
Exit
EndSelect
WEndUEZ
-
Hier noch eine Version:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
#include <Misc.au3>
Opt('MustDeclareVars', 1)
Opt("MouseCoordMode", 2)Global $hGUI, $hWnd, $hGraphic, $hBrush, $aPoints[8][2]
[/autoit] [autoit][/autoit] [autoit]
Global $msg, $aPos; Create GUI
[/autoit] [autoit][/autoit] [autoit]
$hWnd = GUICreate("GDI+ Intersection with Polygon by UEZ (Kudos to Malkey!)", 400, 400)
GUISetState(); Fill a cardinal spline
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_Startup()
$hBrush = _GDIPlus_BrushCreateSolid(0xFF0000FF)$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsClear($hGraphic)$aPoints[0][0] = 5; Number of sides of Polygon
[/autoit] [autoit][/autoit] [autoit]
$aPoints[1][0] = 100
$aPoints[1][1] = 100
$aPoints[2][0] = 300
$aPoints[2][1] = 150
$aPoints[3][0] = 300
$aPoints[3][1] = 200
$aPoints[4][0] = 150
$aPoints[4][1] = 300
$aPoints[5][0] = 70
$aPoints[5][1] = 200
$aPoints[6][0] = 100;Last point same as 1st point. Polygon is closed
$aPoints[6][1] = 100_GDIPlus_GraphicsFillPolygon($hGraphic, $aPoints, $hBrush)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
; Clean up resources
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_Shutdown()
Exit
Case $GUI_EVENT_PRIMARYUP
$aPos = MouseGetPos()
If _PointInPoly($aPos[0], $aPos[1], $aPoints) Then
_GDIPlus_BrushSetSolidColor($hBrush, 0xFF000000 + Random(0x400000, 0xFFFFFF, 1))
_GDIPlus_GraphicsFillPolygon($hGraphic, $aPoints, $hBrush)
EndIf
EndSwitch
WEndFunc _GDIPlus_BrushSetSolidColor($hBrush, $iARGB = 0xFF000000)
[/autoit] [autoit][/autoit] [autoit]
Local $aResult
$aResult = DllCall($ghGDIPDll, "int", "GdipSetSolidFillColor", "hwnd", $hBrush, "int", $iARGB)
If @error Then Return SetError(@error, @extended, 0)
Return SetError($aResult[0], 0, $aResult[0] = 0)
EndFunc ;==>_GDIPlus_BrushSetSolidColor; ($x, $y) - x, y position of the point to check
[/autoit]
; $aPoints - An array of x,y values representing the nodes of a polygon.
; Finds the individual x values of the interestion of the individual sides of the polygon with the
; line y = $y (parallel with x-axis). If the number of x values found greater than $x is even, then
; the ($x, $y) point is outside the closed polygon. Plus, if $y is beyond the y values of the end
; points of individual sides of the polygon, the y = $y line will not interest with that side and will
; not be counted. Returns equivalent of, even number of intersections false, and, odd true(inside polygon).
; Requires Iif()function
Func _PointInPoly($x, $y, $aPoints)
Local $bEvenNum = False, $xOnLine, $yMin, $yMax
For $i = 1 To $aPoints[0][0]
$yMin = _Iif($aPoints[$i + 1][1] < $aPoints[$i][1], $aPoints[$i + 1][1], $aPoints[$i][1])
$yMax = _Iif($aPoints[$i + 1][1] > $aPoints[$i][1], $aPoints[$i + 1][1], $aPoints[$i][1])
$xOnLine = -($y * $aPoints[$i + 1][0] - $y * $aPoints[$i][0] - $aPoints[$i][1] * $aPoints[$i + 1][0] + _
$aPoints[$i][0] * $aPoints[$i + 1][1]) / (-$aPoints[$i + 1][1] + $aPoints[$i][1])
If ($x < $xOnLine) And ($y > $yMin) And ($y <= $yMax) Then $bEvenNum = Not $bEvenNum
Next
Return $bEvenNum
EndFunc ;==>_PointInPolyDanke an Malkey für die Funktion _PointInPoly()

UEZ
-
Wieso nimmst du handle vom Fenster wenn GUICreate n handle returned?
Ist wie gesagt nicht von mir, sondern aus der AutoIt Hilfe!

Gruß,
UEZ -
Soweit ich weiß, gibt es die Funktion des nachträglichen Füllens nicht!
Mein Vorschlag: _GDIPlus_GraphicsFillClosedCurve
Hier das Beispiel aus der Hilfe:
[autoit]
[/autoit]
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
Opt('MustDeclareVars', 1)
_Main()
Func _Main()
Local $hGUI, $hWnd, $hGraphic, $aPoints[8][2]
; Create GUI
$hGUI = GUICreate("GDI+", 400, 300)
$hWnd = WinGetHandle("GDI+")
GUISetState()
; Fill a cardinal spline
_GDIPlus_Startup ()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hWnd)
$aPoints[0][0] = 7
$aPoints[1][0] = 50
$aPoints[1][1] = 50
$aPoints[2][0] = 100
$aPoints[2][1] = 25
$aPoints[3][0] = 200
$aPoints[3][1] = 5
$aPoints[4][0] = 250
$aPoints[4][1] = 50
$aPoints[5][0] = 300
$aPoints[5][1] = 100
$aPoints[6][0] = 350
$aPoints[6][1] = 200
$aPoints[7][0] = 250
$aPoints[7][1] = 250
_GDIPlus_GraphicsFillClosedCurve ($hGraphic, $aPoints)
; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Clean up resources
_GDIPlus_GraphicsDispose ($hGraphic)
_GDIPlus_Shutdown ()
EndFunc ;==>_MainGruß,
UEZ -
...
Schön, daß man nun speichern kann
! Das Programm wäre doch wirklich einen einzelnen Thread wert, oder habe ich den übersehen?
...Die Fraktale gibt es schon, aber nicht als einzelnen Thread -> GDI+ Beispiele
Oder mit mehr Beispielen: -> http://www.autoitscript.com/forum/index.php?showtopic=87200Gruß,
UEZ -
Was heißt denn vergleichen? Willst du deine 6 Zahlen in den Ziehungen suchen? Oder was genau?
UEZ