1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. autoBert

Beiträge von autoBert

  • Checkboxnamen aus Array verwenden

    • autoBert
    • 25. April 2016 um 01:05
    Zitat von Bitnugger
    AutoIt
    Dim $aBefehl[2][2]=[  _
    ['test1', $Label1], _
    ['test2', $Label2]]
    _ArrayDisplay($aBefehl)
    GUICtrlSetState($aBefehl[0][1],$GUI_CHECKED)

    So funktioniert es, da nun nicht der Name der Variable als 'Text' im Array gespeichert wird, sondern die benötigte ID des Controls, welches du mit GUICtrlSetState() ansprechen willst.

    Dann bist du ein Zauberer, noch kein Control erstellt aber schon dem bisher noch nicht erstellten Control ein Status zuweisen 8o:/

  • Warum blinken meinen Button ?

    • autoBert
    • 24. April 2016 um 20:53

    Also so, falls ich richtig schlussgefolgert habe:

    C
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Global $idRadios[8][3]
    $Form1_1 = GUICreate("Form1", 583, 716, 192, 124)
    GUIStartGroup()
    for $i= 0 to 6
    	$idRadios[$i][0] = GUICtrlCreateRadio($i+1, 24, 100+$i*40, 40, 40, BitOR($GUI_SS_DEFAULT_RADIO, $BS_PUSHLIKE))
    Next
    GUIStartGroup()
    for $i= 0 to 6
    	$idRadios[$i][1] = GUICtrlCreateRadio($i+8, 72, 100+$i*40, 40, 40, BitOR($GUI_SS_DEFAULT_RADIO, $BS_PUSHLIKE))
    Next
    for $i= 0 to 6
    	$idRadios[$i][2] = GUICtrlCreateRadio($i+15, 120, 100+$i*40, 40, 40, BitOR($GUI_SS_DEFAULT_RADIO, $BS_PUSHLIKE))
    Next
    GUISetState(@SW_SHOW)
    
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $idRadios[0][0] to $idRadios[6][0]
    			$iRadioGrp0 = $nMsg - $idRadios[0][0]
    			GUICtrlSetState($idRadios[7][1],$GUI_SHOW)		;evtl. versteckes mittleres Radio zeigen
    			GUICtrlSetState($idRadios[7][2],$GUI_SHOW)		;evtl. versteckes rechtes Radio zeigen
    			If GUICtrlRead($idRadios[$iRadioGrp0][0]) Then
    				$idRadios[7][1]=$idRadios[$iRadioGrp0][1]	;mittleres Radio merken
    				$idRadios[7][2]=$idRadios[$iRadioGrp0][2]	;rechtes Radio merken
    				GUICtrlSetState($idRadios[$iRadioGrp0][1],$GUI_HIDE)
    				GUICtrlSetState($idRadios[$iRadioGrp0][2],$GUI_HIDE)
    			EndIf
    	EndSwitch
    WEnd
    Alles anzeigen
  • Checkboxnamen aus Array verwenden

    • autoBert
    • 24. April 2016 um 20:00

    Um einem Control etwas zuzuweisen benötigst du die ControlID, in deinem Array steht aber ein Text.

    Wenn du Controls über Arrayelemente beeinflussen willst muß auch die ControlID im Array gespeichert sein. Hier mal ein kleines Beispiel mit Buttons:

    C
    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    
    
    Opt('MustDeclareVars', 1)
    Global $aBtnIds[10][3]
    $aBtnIds[0][2] = "0101"
    $aBtnIds[1][2] = "0100"
    $aBtnIds[2][2] = "0110"
    $aBtnIds[3][2] = "1100"
    $aBtnIds[4][2] = "1100"
    $aBtnIds[5][2] = "1100"
    $aBtnIds[6][2] = "1100"
    $aBtnIds[7][2] = "1100"
    $aBtnIds[8][2] = "1100"
    $aBtnIds[9][2] = "_Farben"
    
    
    
    
    Global $hGui = GUICreate('Buttontest', 105, 145)
    Global $msg, $Text
    
    
    For $iTop = 0 To 2
    	For $iLeft = 0 To 2
    		$Text=$iTop * 3 + $iLeft + 1
    		$aBtnIds[$Text-1][0] = GUICtrlCreateButton($Text, 10 + $iLeft * 30, 10 + $iTop * 30, 25, 25)
    		;$aBtnIds[$Text-1][0] enthält jetzt die ID
    		ConsoleWrite($Text & ': ' & $aBtnIds[$Text-1][0] & @CRLF)
    		GUICtrlSetBkColor(-1, 0x990000)
    		$aBtnIds[$Text-1][1] = False
    	Next
    Next
    $aBtnIds[9][0] = GUICtrlCreateButton('OK', 10, 110, 90, 25)
    GUISetState()
    
    
    While 1
    	$msg = GUIGetMsg()
    	Switch $msg
    		Case $GUI_EVENT_CLOSE
    			Exit
    		Case $aBtnIds[0][0] To $aBtnIds[8][0]
    			_Click($msg - $aBtnIds[0][0], True)
    		Case $aBtnIds[9][0]
    			;_Click($msg - $aBtnIds[0][0])
    			Call($aBtnIds[9][2]) ;ruft die hinterlegte Func auf
    	EndSwitch
    WEnd
    
    
    Func _Click($iBtn, $bColorToggle = False)
    	If $bColorToggle Then
    		If $aBtnIds[$iBtn][1] Then
    			GUICtrlSetBkColor($aBtnIds[$iBtn][0], 0x990000)
    		Else
    			GUICtrlSetBkColor($aBtnIds[$iBtn][0], 0x059122)
    		EndIf
    		$aBtnIds[$iBtn][1] = Not $aBtnIds[$iBtn][1]
    	EndIf
    	MsgBox(0, 'Buttonclick', 'Button with ID ' & $aBtnIds[$iBtn][0] & ' was clicked.' & @CRLF & 'The text of the button is: ' & ControlGetText('Buttontest', '', $aBtnIds[$iBtn][0]) & @CRLF & 'Data: ' & $aBtnIds[$iBtn][2] & @CRLF & 'True/False: ' & $aBtnIds[$iBtn][1], 5, $hGui)
    EndFunc   ;==>_Click
    
    
    Func _Farben()
    	Local $sText = '', $aBtns
    	For $i = 0 To 8
    		$sText &= $aBtnIds[$i][1]
    		If $i < 8 Then $sText &= '|'
    	Next
    	$sText = StringReplace($sText, 'True', 'Grün')
    	$sText = StringReplace($sText, 'False', 'Rot')
    	ConsoleWrite($sText & @CRLF)
    	$aBtns = StringSplit($sText, '|')
    	$aBtns[0] = UBound($aBtns) - 1
    	_ArrayDisplay($aBtns, 'Farben', '', 32)
    EndFunc   ;==>_Farben
    Alles anzeigen
  • Warum blinken meinen Button ?

    • autoBert
    • 24. April 2016 um 18:54

    Erkläre doch einfach was du vor hast und stelle ein lauffähiges Skript ein, es über Adlibreister zu machen ist imho nicht nötig und einer der Gründe für deine Blinklichter.

  • Radio Button Background ändern

    • autoBert
    • 24. April 2016 um 18:13

    Ja, so z.B.:

    C
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    
    
    
    
    $Form1 = GUICreate("Form1", 324, 222, 192, 124)
    DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 0) ; Classic-Style
    $Radio1 = GUICtrlCreateRadio("Radio One", 104, 72, 113, 17)
    GUICtrlSetFont(-1, 12, 400, 0, "Palatino Linotype")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBKColor(-1, 0x00FF00)
    
    
    $Radio2 = GUICtrlCreateRadio("Radio Two", 104, 110, 113, 17)
    GUICtrlSetFont(-1, 12, 400, 0, "Palatino Linotype")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlSetBKColor(-1, 0x00FF00)
    
    
    GUISetState(@SW_SHOW)
    
    
    
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                GUIDelete()
                Exit
    
    
        EndSwitch
    WEnd
    Alles anzeigen
  • Aktueller Mikrofon Stream

    • autoBert
    • 24. April 2016 um 09:11

    wenn du nach Skripten von @eukalyptus und Bass.au3 suchst ist mit großer Sicherheit etwas passendes dabei, Voice over IP - Mikrofoneingang als Mp3 versenden und abspielen klinkt doch schon vielversprechend.

  • 3D Konzept in GDI+: Text Rotation auf Glaskugel / Globus Rotation

    • autoBert
    • 22. April 2016 um 04:52

    Sieht spitze aus :thumbup:

    [OT]Original schafft auch nur 1 Umdrehung pro Tag[/OT]

  • 2. Gui schließt nicht mit X

    • autoBert
    • 21. April 2016 um 09:37

    Die sieben ist zwar eine meiner Lieblingszahlen, hat aber in diesem Fall keine besondere Bedeutung.

  • 2. Gui schließt nicht mit X

    • autoBert
    • 20. April 2016 um 16:32

    Die InfoGui habe ich mit einer großen negativen Zahl vorbelegt, bei Aufruf der Func _InfoGui prüfe ich nur ob kleiner 0, wenn ja wird die Gui erstellt, wenn nein Title und evtl. Lauftext der Aimation upgedated.

    Zu den verschiedenen OPT's, das schöne ist das man gleichzeitig den bisher benutzten Status zurückbekommt und so problemlos (für UDF's wichtig) nach eventellem Setzen wieder zum vorherigen Zustand zurückwechseln kann. Dies nutze ich in der Func _DefragFolder() wo ich kurzfristig den GuiOnEvent aus- und GuiCloseOnEscape einschalte. Vor verlassen der Funktion schalte ich wieder in die Zuständ die zuvor bestanden.

  • Verzeichniss überwachen und Drucken

    • autoBert
    • 20. April 2016 um 16:10

    Kannst du analysieren woran es klemmt?

  • Einfacher Programmstart + weiterer Verlauf

    • autoBert
    • 19. April 2016 um 11:40

    Du solltest das Programm benennen, Mouseclicks & Co sind die schlechteste Möglichkeit ein Programm zu automatisieren. Seriöse Anwendungen (Spiele zähle ich nicht dazu, diese werden lt. Forenregeln auch nicht supported) lassen sich zu 99,9 % mit anderen Funktionen steuern. wir müssten nur wissen wie das Programm heißt, sonst können wir nichts anderes vorschlagen.

  • 2. Gui schließt nicht mit X

    • autoBert
    • 19. April 2016 um 10:19

    umgedreht gehts einfacher, deine Zeilen in dieses Skript integrieren

  • 2. Gui schließt nicht mit X

    • autoBert
    • 18. April 2016 um 11:34

    Weg zur Lösung: die Animation wieder in der Hauptschleife laufen lassen wie im Originalskript von @UEZ. Da es jetzt ja mehrere GUI's sind habe ich als 1. die Erstellung der 'StarwarScroller'-Gui in eine eigene Func ausgelagert. Dem Guiaufruf habe ich noch Variablen für Titel, ScrollText, TimeOut und Callback-Funktionsnamen spendiert. Herausgekommen ist folgendes Skript:

    Spoiler anzeigen
    AutoIt
    ;Coded by UEZ 2011 build 2011-03-28
    ;modified autoBert 2016-04-17
    ;#AutoIt3Wrapper_UseUpx=y
    ;#AutoIt3Wrapper_UPX_Parameters=--brute --crp-ms=999999 --all-methods --all-filters
    ;#AutoIt3Wrapper_Run_Obfuscator=y
    ;#Obfuscator_Parameters=/sf /sv /om /cs=0 /cn=0
    ;#AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_Obfuscated.au3"
    #include <GDIPlus.au3>
    #include <GDIPlusConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    #include <File.au3>
    #include <WindowsConstants.au3>
    #include <_GUICtrlProgress.au3>
    ;#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    ;noch strengere Prüfung als Opt('MustDeclareVars', 1)
    Opt("GUICloseOnESC", 0)		;ESCape schließt Gui 	1=Ja 0=Nein
    Opt("GuiOnEventMode", 1)	;OnEventModus
    Opt('MustDeclareVars', 1)	;Variablendeklaration	1=Pflicht	0=keine Pflicht
    #Region GDIPlus Konstanten und globale Variablen
    Const $width = 800, $height = 500
    Const $sy = 1900, $dy = 150
    Global $hContext, $hBmp_back, $hPath, $hFamily, $hBrush, $hGraphics, $hBitmap
    Global $aText[1], $aPoints, $aWB
    Global $tLayout
    Global $iSpeed, $iMax, $tdStart
    Global $sUEZInfo = "Starwars Scroller|Coded by| | UEZ 2011| |Everything is|Done using| |G D I +| | |Powered by| |AutoIt| | |" & ChrW(9787)
    Global $bGDIpWorldCreated, $bShowAnim
    #EndRegion GDIPlus Konstanten und globale Variablen
    Global $afterAnimCall	;diese Func wird nach Beendigung der Animation aufgerufen
    						;sie wir in der func _InfoGui gesetzt
    Global $hGuiInfo = -9999, $hGuiMain, $idProgress
    ;mehr globale Varaiblen sollten fürs GUI-Handling nicht benötigt werden
    ;GUICtrlSetOnEvent(-1, _Info) können 	auch gleich nach Erstellen
    ;										eines GUI-Controls mit -1 zugewiesen werden.
    #Region Main-Gui
    $hGuiMain = GUICreate("ProfiDefrag: Datei- Odner und Laufwerk Defragmentation leicht gemacht!", 820, 400, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_THICKFRAME))
    ;GUISetIcon("D:\!Autoit Software\ICON\logo_orange.ico", -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, _Danke, $hGuiMain)
    GUISetBkColor(0xD7E4F2)
    #cs
    	$Inputbox1 = GUICtrlCreateInput("Dateiauswahl nur über -Datei auswählen- möglich!", 201, 53, 580, 23, $ES_READONLY)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetTip(-1, "Dieses Feld füllt sich automatisch" & @CRLF & "über den Button -Datei auswählen-!")
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	$dateiwahl = GUICtrlCreateButton("Datei auswählen!", 35, 53, 147, 25, $BS_ICON)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    	GUICtrlSetTip(-1, "Bitte Datei zur ProfiDefragntierung auswählen!")
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	$labeltext = GUICtrlCreateLabel("Bitte wählen Sie eine Datei, einen Ordner oder ein Laufwerk zur Defragmentation aus!", 37, 22, 620, 21)
    	$font = "Arial Fett"
    	GUICtrlSetFont(-1, 9, -1, -1, $font) ; will display italic characters
    	$Inputbox2 = GUICtrlCreateInput("Ordnerauswahl nur über -Ordner auswählen- möglich!", 201, 93, 580, 23, $ES_READONLY)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetTip(-1, "Dieses Feld füllt sich automatisch" & @CRLF & "über den Button -Ordner auswählen-!")
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	$ordnerwahl = GUICtrlCreateButton("Ordner auswählen!", 35, 93, 147, 25, $BS_ICON)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    	GUICtrlSetTip(-1, "Bitte einen Ordnerpfad zur recursiven Defragmentierung auswählen!")
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	$laufwerkcombo = GUICtrlCreateCombo("Laufwerk auswählen", 35, 133, 147, 25)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    	GUICtrlSetTip(-1, "Bitte Laufwerk zur Defragmentierung auswählen!")
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	$Inputbox3 = GUICtrlCreateInput("Laufwerkauswahl nur über -Laufwerk auswählen- möglich!", 201, 133, 580, 23, $ES_READONLY)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetTip(-1, "Dieses Feld füllt sich automatisch" & @CRLF & "über den Button -Laufwerk auswählen-!")
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	$dateidrefrag = GUICtrlCreateButton("Datei-Defrag", 35, 245, 125, 41)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    	$dateibericht = GUICtrlCreateButton("Datei-Bericht", 160, 245, 125, 41)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    	#ce
    	;$ordnerdrefrag =
    	GUICtrlCreateButton("Ordner-Defrag", 285, 245, 125, 41)
    	GUICtrlSetOnEvent(-1,'_DefragFolder')
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    	#cs
    	$ordnerbericht = GUICtrlCreateButton("Ordner-Bericht", 410, 245, 125, 41)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    	$laufwerkdrefrag = GUICtrlCreateButton("Laufwerk-Defrag", 535, 245, 125, 41)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    	$laufwerkbericht = GUICtrlCreateButton("Laufwerk-Bericht", 660, 245, 125, 41)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    	$labeltext1 = GUICtrlCreateLabel("Bitte warten Sie, bis der blaue Balken vollständig durchgelaufen ist." & @CRLF & _
    	"Mit der Taste ESC kann ProfiDefrag abgebrochen und beendet werden!", 37, 180, 530, 35)
    	GUICtrlSetFont(-1, 9, -1, -1, $font) ; will display italic characters
    	$customize = GUICtrlCreateLabel("-Software von Top-PE.de! Klicken Sie hier für weitere Informationen-", 36, 305, 477, 27, BitOR($SS_CENTER, $SS_CENTERIMAGE, $SS_SUNKEN), $WS_EX_CLIENTEDGE)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetColor(-1, 0x000000)
    	GUICtrlSetCursor(-1, 0)
    #ce
    GUICtrlCreateButton("Info" & @CRLF & "", 535, 303, 125, 30)
    GUICtrlSetFont(-1, 9, 400, "Arial")
    GUICtrlSetTip(-1, "Info")
    GUICtrlSetOnEvent(-1, _Info)
    GUISetState(@SW_HIDE)
    $idProgress = _GUICtrlProgress_Create(575, 180, 0, 0x00FF00)
    #cs
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    	$lizenz = GUICtrlCreateButton("Lizenz" & @CRLF & "", 660, 303, 125, 30)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetTip(-1, "Zeigt die Lizenz an")
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    	$reset = GUICtrlCreateButton("GUI-Reset" & @CRLF & "", 680, 18, 100, 25)
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetTip(-1, "Setzt ProfiDefrag zurück")
    	GUICtrlSetFont(-1, 9, 400, "Arial")
    	GUICtrlSetCursor(-1, 0)
    #ce
    #EndRegion Main-Gui
    _InfoGui('Loadingscreen', $sUEZInfo, 30, '_ShowMainGui')
    #Region IdleLoop
    While Sleep(30)
    	If $bShowAnim Then
    		_GDIPlus_GraphicsClear($hContext, 0xF0000000)
    		_GDIPlus_GraphicsDrawImageRect($hContext, $hBmp_back, 0, 0, $width, $height)
    		;_ArrayDisplay($aText)
    		For $i = 0 To UBound($aText) - 1
    			DllStructSetData($tLayout, "x", $aText[$i][2])
    			DllStructSetData($tLayout, "y", $aText[$i][1])
    			_GDIPlus_PathAddString($hPath, $aText[$i][0], $tLayout, $hFamily, 0, 80)
    			$aText[$i][1] -= $iSpeed
    		Next
    		If Not $bGDIpWorldCreated Then
    			$aWB = _GDIPlus_PathGetWorldBounds($hPath)
    			$bGDIpWorldCreated = True
    		EndIf
    		_GDIPlus_PathWarp($hPath, 0, $aPoints, 0, 0, $width, 1500)
    		_GDIPlus_GraphicsFillPath($hContext, $hPath, $hBrush)
    		_GDIPlus_PathReset($hPath)
    		_GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $width, $height)
    		If $aText[UBound($aText) - 1][1] < $aWB[3] / 16 Then $iSpeed *= 1.005
    		If $aText[UBound($aText) - 1][1] < $sy * -7 Then
    			For $i = 0 To UBound($aText) - 1
    				$aText[$i][1] = $sy + $i * $dy
    			Next
    			$iSpeed = 10
    		EndIf
    		If $iMax > 0 Then
    			If TimerDiff($tdStart) / 1000 > $iMax Then $bShowAnim = False ;noch ne Runde?
    		EndIf
    	Else
    		Call($afterAnimCall) ;wie/wo gehts weiter?
    	EndIf
    WEnd
    #EndRegion IdleLoop
    Func _InfoGui($title, $text = $sUEZInfo, $iTimeOut = -1, $sCallBack = '')
    	#cs
    		_InfoGui erstellt die InfoGui (wenn sie noch nicht existiert)
    		und/oder macht sie sichtbar.
    	Syntax:	_InfoGui($title [, $text = $sUEZInfo [, $iTimeOut = -1 [, $sCallBack = '']]])
    	Paramter:	$title		anzuteigender Fenstertitel					Pflicht
    				$text		Text der für die Animation verwendet wird	optional
    				$iTimeOut	nach dieser Zeit wird die Animation beebdet	optional
    				$sCallBack	hiermit wird die Funktion übergeben, welche	optional
    							nach Beendigung der Animation aufgerufen
    							wird. Die Callbackfunktion kann nicht mit
    							Parametern aufgerufen werden.
    	Author:		Original von UEZ Starwarscroller
    	modified:	autoBert
    	#ce
    	Local $x, $y, $c, $aString, $aInfo
    	$iMax = $iTimeOut
    	If $sCallBack <> '' Then
    		$afterAnimCall = $sCallBack
    	Else
    		$afterAnimCall = '_Nothing'
    	EndIf
    	If $iMax Then $tdStart = TimerInit()
    	;ConsoleWrite($iMax&@CRLF)
    	If $hGuiInfo < 0 Then
    		$hGuiInfo = GUICreate($title, $width, $height)
    		GUISetBkColor(0x000000, $hGuiInfo)
    		If @OSBuild < 7600 Then WinSetTrans($hGuiInfo, "", 0xFF) ;workaround for XP machines when alpha blending is activated on _GDIPlus_GraphicsClear() function to avoid slow drawing
    		_GDIPlus_Startup() ;ist in der UDF geregelt, daß Funktion nur 1*/Script ausgeführt wird
    		$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGuiInfo)
    		$hBitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphics)
    		$hContext = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    		$hBmp_back = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphics)
    		For $i = 0 To 1000
    			$x = Random(0, $width, 1)
    			$y = Random(0, $height, 1)
    			$c = Random(0x10, 0xF0, 1)
    			DllCall($__g_hGDIPDll, "uint", "GdipBitmapSetPixel", "hwnd", $hBmp_back, "int", $x, "int", $y, "uint", "0xFF" & Hex($c, 2) & Hex($c, 2) & Hex($c, 2))
    		Next
    		_GDIPlus_GraphicsSetSmoothingMode($hContext, 2)
    	Else
    		WinSetTitle($hGuiInfo, '', $title)
    	EndIf
    	GUISetState(@SW_SHOW, $hGuiInfo)
    	$hBrush = _GDIPlus_LineBrushCreate(0, 0, 0, $height, 0xFF000000, 0xFFFFFFFF, 0)
    	$iSpeed = 10
    	;$text = "Starwars Scroller|Coded by| | UEZ 2011| |Everything is|Done using| |G D I +| | |Powered by| |AutoIt| | |" & ChrW(9787)
    	$aString = StringSplit($text, "|", 2)
    	Dim $aText[UBound($aString)][3]
    	For $i = 0 To UBound($aText) - 1
    		$aText[$i][0] = $aString[$i]
    		$aText[$i][1] = $sy + $i * $dy
    	Next
    	$hFamily = _GDIPlus_FontFamilyCreate("Impact")
    	$tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
    	Local $hFont = _GDIPlus_FontCreate($hFamily, 60, 0)
    	For $i = 0 To UBound($aText) - 1
    		$aText[$i][0] = StringUpper($aText[$i][0])
    		$aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $aText[$i][0], $hFont, $tLayout, 0)
    		$aText[$i][2] = Floor($width / 2 - (DllStructGetData($aInfo[0], "Width") / 2))
    	Next
    	_GDIPlus_FontDispose($hFont)
    	$hPath = _GDIPlus_PathCreate()
    	Dim $aPoints[5][2] = [[4, 0], _
    			[$width / 2 - $width / 3, $height * 0.55], _ 	;x1, y1
    			[$width / 2 + $width / 3, $height * 0.55], _ 	;x2, y2
    			[0, $height * 0.85], _ 	;x3, y3
    			[$width, $height * 0.85]] ;x4, y4
    	$bShowAnim = True
    	GUISetOnEvent($GUI_EVENT_CLOSE, $afterAnimCall)
    EndFunc   ;==>_InfoGui
    Func _ShowMainGui()
    	GUISetState(@SW_HIDE, $hGuiInfo)
    	GUISetState(@SW_SHOW, $hGuiMain)
    EndFunc   ;==>_ShowMainGui
    Func _Info()
    	GUISetState(@SW_HIDE, $hGuiMain)
    	$bGDIpWorldCreated = False
    	_InfoGui('Infoscreen', $sUEZInfo, -1, '_ShowMainGui')
    EndFunc   ;==>_Info
    Func _Danke()
    	GUISetState(@SW_HIDE, $hGuiMain)
    	$bGDIpWorldCreated = False
    	_InfoGui('Credits', 'Danksagungen: | |UEZ für:|Starwars Scroller| |unbekannt für:|GDI-Progress| | |und dem|AutoIt.de Team', 30, '_Exit')
    EndFunc   ;==>_Danke
    Func _Nothing()
    	;wichtigste Funktion des Scrptes  8o
    	Return
    EndFunc   ;==>_Nothing
    Func _DefragFolder()
    	;simuliert zu testzwecken fortschritt
    	;könnte glatt Regierungsmitglied werden,
    	;die stellen auch jeden Scheiss als Fortschritt dar
    	Local $iPercent, $iPerOld
    	Local $sFolder=@ProgramFilesDir ;=GuiCtrlRead(...
    	Local $aFiles=_FileListToArrayRec($sFolder,'*',Default,$FLTAR_RECUR)
    	Local $iOldOE=Opt("GuiOnEventMode", 0)	;OnEventModus ausschalten
    	Local $iOldESC=Opt("GUICloseOnESC", 1)	;CloseOnESC einschalten
    	;und dabei den Zustand speichern
    	;_ArrayDisplay($aFiles,'Dateien')
    	For $i=1 To $aFiles[0]
    		$iPercent=Int($i/$aFiles[0]*100)
    		If $iPercent<>$iPerOld Then
    			_GUICtrlProgress_SetData($idProgress, $iPercent)
    			$iPerOld=$iPercent
    		EndIf
    		if GUIGetMsg()=$GUI_EVENT_CLOSE Then
    			;MsgBox		vielleich sollte man vorher fragen?
    			ExitLoop
    		EndIf
    	Next
    	_GUICtrlProgress_SetData($idProgress, 100)
    	Sleep(1000)
    	Opt("GuiOnEventMode", $iOldOE)	;wieder zu alten OnEventModus Zustand schalten
    	Opt("GuiCloseOnESC", $iOldESC)	;wieder zu alten GuiCloseOnESC Zustand schalten
    EndFunc
    Func _Exit()
    	_GDIPlus_FontFamilyDispose($hFamily)
    	_GDIPlus_PathDispose($hPath)
    	_GDIPlus_BrushDispose($hBrush)
    	_GDIPlus_GraphicsDispose($hContext)
    	_GDIPlus_BitmapDispose($hBmp_back)
    	_GDIPlus_BitmapDispose($hBitmap)
    	_GDIPlus_GraphicsDispose($hGraphics)
    	_GDIPlus_Shutdown()
    	Exit
    EndFunc   ;==>_Exit
    Alles anzeigen


    Es wird kein HotkeySet oder eine mit GuiRegisterMsg registrierte Funktion benötigt. Das obige Beispiel zeigt 30 Sekunden einen IntroScreen, danach die (jetzt noch recht kümmerliche) MainGui. Mit dem einzigen Button kann die Intro (diesmal Infoscreen genannt) erneut angezeigt werden, diesmal ohne TimeOut d.h. muß vom Benutzer geschlossen werden. Nach schliessen der MainGui werden noch die Credits angezeigt, TimeOut ist auf 30 Sekunden eingestellt.

    Viel Spaß mit dem Konzept, daß du deine Gui wieder mit eigenem Leben füllen mußt ist hoffentlich verkraftbar.

    Edit: um Progress-Testroutine erweitert => Konzept klappt auch zusammen mit dieser UDF.

    mfg (auto)Bert

    Dateien

    _GUICtrlProgress.au3 5,47 kB – 197 Downloads
  • [Gelöst] Aktuelle ff.au3

    • autoBert
    • 16. April 2016 um 14:00

    da Stilgar DownloadLink gepostet hat,die zudem die in #4 beschriebenen Fehler nicht hat, sollten alle (2) sich die FF.au3 nochmals von @Stilgar's angepinntem Thema ziehen.

  • TXT-Datei öffnen

    • autoBert
    • 16. April 2016 um 05:43

    Natürlich nur wenn sie nicht dur ein Programm (in deinem Fall evtl. das eigene #48 + #49) geöffnet sind.

  • Maus sperren (nicht Tastatur)

    • autoBert
    • 15. April 2016 um 20:08
    Zitat von Oscar

    Wozu ein Script, was Eintragungen in ein eigenes Programm macht? Noch dazu per Mausmove/-click.

    Weil dies in einem Onlinespiel nicht möglich ist?

  • Maus sperren (nicht Tastatur)

    • autoBert
    • 15. April 2016 um 14:27

    Nutze BlockInput mit #RequireAdmin

    Zitat von Helpfile

    Windows Vista and above
    User input is blocked and AutoIt can simulate mouse and keyboard if
    #RequireAdmin is used.

    unmittelbar vor dem MouseClick, dauert doch nur Millisekunden.

  • [Gelöst] Aktuelle ff.au3

    • autoBert
    • 15. April 2016 um 14:14

    Hing mit _FFImageClick zusammen, die dort aufgerufene Funktion __FFValue2JavaScript ist nicht (mehr?) enthalten. Ein Syntax Check für die Datei bringt:

    Code
    Running AU3Check (3.3.14.2)  from:C:\Program Files\AutoIt3  input:C:\Users\Bert\AutoIt3.My\Temp\FF.au3
    "C:\Users\Bert\AutoIt3.My\Temp\FF.au3"(538,42) : error: __FFValue2JavaScript(): undefined function.
    	$vSearch = __FFValue2JavaScript($vSearch)
    	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    "C:\Users\Bert\AutoIt3.My\Temp\FF.au3"(1076,28) : error: __FFWaitForRepl(): undefined function.
    			If __FFWaitForRepl(10000)
    			~~~~~~~~~~~~~~~~~~~~~~~~^
    "C:\Users\Bert\AutoIt3.My\Temp\FF.au3"(1083,25) : error: __FFSendJavaScripts(): undefined function.
    				__FFSendJavaScripts()
    				~~~~~~~~~~~~~~~~~~~~^
    "C:\Users\Bert\AutoIt3.My\Temp\FF.au3"(1229,50) : error: __FFB2S(): undefined function.
    	Local $sCommand = "checked=" & __FFB2S($bChecked)
    	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    "C:\Users\Bert\AutoIt3.My\Temp\FF.au3"(2502,71) : error: __FFStartProcess(): undefined function.
    			__FFStartProcess($sURL, True, $sProfile, $bNoRemote, $bHide, $iPort)
    			~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    Alles anzeigen

    ist aber von @Stilgar's Seite heruntergeladen. Ob sie aber für deine Bedürfnisse funktioniert?

  • ISN AutoIt Studio

    • autoBert
    • 15. April 2016 um 14:09

    Ok, hat auch geklappt mit weiteren Wünschen bzw. (evtl. Bugmeldungen) warte ich bis ich upgedatet habe.

  • [Gelöst] Aktuelle ff.au3

    • autoBert
    • 15. April 2016 um 13:57

    Habe aber meine Zweifel ob sie vollständig ist.


    Edit: da Stilgar DownloadLink gepostet hat,die zudem die in #4 beschriebenen Fehler nicht hat, habe ich den Link wieder entfernt.

    Dateien

    FF.au3 157,6 kB – 248 Downloads

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™