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. Bitnugger

Beiträge von Bitnugger

  • R128 Lautheitsmesser

    • Bitnugger
    • 12. Februar 2018 um 14:56

    Die Textcodierung hier im Forum ist UTF-8... und da wird es wohl so sein, dass die Anzahl der Bytes und nicht die Zeichen bzw. Glyphen gezählt werden, die übrigens bis zu 4 Byte verschlingen können.

  • Mit ftp:// Daten kopieren

    • Bitnugger
    • 12. Februar 2018 um 10:30

    Ich denke nicht, dass es am Server liegt...

    _FTP_ListToArrayEx-Error.png

  • Festgelegten Textinhalt in String suchen und filtern

    • Bitnugger
    • 10. Februar 2018 um 13:15

    Peter S. Taler

    Da stimme ich alpines zu... müsste ich deinen sozialen Vorstellungen entsprechen, würde ich hier im Forum keine einzige Frage mehr stellen.

    Ich bin hier im Forum auch schon über einige Threads gestolpert, auf die nicht geantwortet wurde... da könnte man jetzt auch sagen, das ist unsozial... was aber genauso falsch wäre.

    Wenn ich es für sinnvoll halte, antworte ich auf Fragen anderer User... und freue mich natürlich auch, wenn meine Antwort hilfreich war... sollte der User keine Notiz von meiner Antwort nehmen, was er ja auch nicht muss, ist das auch ok - andere User mit ähnlicher Fragestellung freuen sich dafür evtl. umso mehr über meine Antwort.

  • FileInstall Funktion funktioniert nicht (immer) auf Windows 7 32 Bit?

    • Bitnugger
    • 6. Februar 2018 um 16:23

    Keine Ahnung... komisch ist nur, die Bitmap in einem Pic-Control anzeigen, oder die Dimensionen auslesen, geht... nur eben nicht Speichern.... auch nicht mit...

    AutoIt
    ; $sResNameOrID = $RT_BITMAP
    ; ...
    Local $hMod = _WinAPI_GetModuleHandle(Null)
    Local $hImage = _GDIPlus_BitmapCreateFromResource($hMod, $sResNameOrID)
    $bReturn = _GDIPlus_ImageSaveToFile($hImage, $sFilePath)
    _GDIPlus_ImageDispose($hImage)
    If @error Then MsgBox(64, @ScriptName, '$bReturn = ' & $bReturn & @CRLF & '@error = ' & @error & @CRLF & '@extended = ' & @extended & @CRLF & @CRLF & $sFilePath)
    ; ...
  • FileInstall Funktion funktioniert nicht (immer) auf Windows 7 32 Bit?

    • Bitnugger
    • 6. Februar 2018 um 15:56

    Anstelle der resources.au3 solltest du vielleicht besser diese UDF verwenden: https://www.autoitscript.com/forum/topic/16…esourcesex-udf/

    Doch genauso wie in der resources.au3 funktioniert auch hier das Speichern von Bitmaps nicht... und bin noch nicht dahinter gekommen, woran es liegt.

    Für Autoit v3.3.14.3 musst du noch ein Include hinzufügen...

    #include <WinAPISysWin.au3>

  • Errormessage Option

    • Bitnugger
    • 4. Februar 2018 um 10:07

    Zwei Fragen hätte ich dazu...

    1.) Hast du den Schlüssel mit regedit exportiert?

    2.) Welches Betriebssystem hast du?

  • Errormessage Option

    • Bitnugger
    • 3. Februar 2018 um 20:40

    SciteConfig ändert lediglich die folgenden Schlüssel...

    AutoIt
    Case $Msg = $h_Edit
                RunReqAdmin("RegWrite('HKEY_CLASSES_ROOT\AutoIt3Script\Shell', '', 'REG_SZ', 'Open')")
                RunReqAdmin("RegWrite('HKEY_CLASSES_ROOT\AutoIt3ScriptBeta\Shell', '', 'REG_SZ', 'Open')")
                Update_status('Updated registry default to Open.')
                ;
            Case $Msg = $h_Run
                RunReqAdmin("RegWrite('HKEY_CLASSES_ROOT\AutoIt3Script\Shell', '', 'REG_SZ', 'Run')")
                RunReqAdmin("RegWrite('HKEY_CLASSES_ROOT\AutoIt3ScriptBeta\Shell', '', 'REG_SZ', 'Run')")
                Update_status('Updated registry default to Run.')

    Damit wird wohl angegeben, aus welchem der Unterschlüssel das Command verwendet werden soll, wenn ein Doppelklick auf eine *.au3-Datei gemacht wird...

    Bei Open (Default) werden diese verwendet...

    HKEY_CLASSES_ROOT\AutoIt3Script\Shell\Open\Command

    HKEY_CLASSES_ROOT\AutoIt3ScriptBeta\Shell\Open\Command

    Standard="C:\Program Files (x86)\AutoIt3\SciTE\SciTE.exe" "%1"

    Bei Run diese...

    HKEY_CLASSES_ROOT\AutoIt3Script\Shell\Run\Command

    HKEY_CLASSES_ROOT\AutoIt3ScriptBeta\Shell\Run\Command

    für 32-Bit...

    Standard="C:\Program Files (x86)\AutoIt3\AutoIt3.exe" "%1" %*

    für 64-Bit...

    Standard="C:\Program Files (x86)\AutoIt3\AutoIt3_x64.exe" "%1" %*

    oder...wenn die Beta als Default benutzt werden soll...

    für 32-Bit...

    Standard="C:\Program Files (x86)\AutoIt3\Beta\AutoIt3.exe" "%1" %*

    für 64-Bit...

    Standard="C:\Program Files (x86)\AutoIt3\Beta\AutoIt3_x64.exe" "%1" %*

    Das funktioniert allerdings nur dann, wenn die Dateierweiterung *.au3 mit AutoIt3.exe verknüpft ist, was von SciTE aber nicht geändert wird - deshalb habe ich es manuell gemacht!

    Die Kontextmenüeinträge sind bei mir nur sichtbar, wenn ich die Dateierweiterung *.au3 mit der AutoIt3.exe aus dem Beta-Verzeichnis verknüpfe...

    Unter Windows 10 Pro X64 konnte ich nur mit Trick 17 die Prod-AutoIt3.exe einstellen... dazu musste ich erst die Beta-AutoIt3.exe in AutoIt3_Beta.exe umbenennen... dann die Prod-AutoIt3.exe auswählen... und anschließend die Beta wieder umbenennen... danach stehen beide AutoIt3.exe zur Auswahl und auch das Wechseln funktioniert ohne Probleme. Anscheinend vergleicht Windows 10 beim Ändern der Anwendung nur den Dateinamen und nicht den kompletten Pfad...

    Edit: Wenn der Standardwert des Schlüssels HKEY_CLASSES_ROOT\.au3 AutoIt3ScriptBeta ist, wird das Kontextmenü angezeigt, wenn *.au3 mit der Beta-AutoIt3.exe verknüpft ist, wenn dort AutoIt3Script steht, wird das Kontextmenü angezeigt, wenn *.au3 mit der Prod-AutoIt3.exe verknüpft ist.

  • Diskussion zum Thema GOTO in der Shoutbox - Zusammenfassung

    • Bitnugger
    • 1. Februar 2018 um 20:34

    Andy, dafür hast du dir eine glatte 1+ verdient! :thumbup:

    In den ersten 3 Wochen meiner Programmiererlaufbahn (C 64) war wohl jeder 7. Befehl ein GOTO... und ich habe mich auch ein wenig schwer getan, darauf zu verzichten, doch weil es in einem "klugen Buch" so empfohlen wurde, habe ich es getan... und nach etwa 1 Woche habe ich das GOTO nicht mehr vermisst. Heute wüsste ich aber wohl gar nicht mehr, was ich damit anfangen sollte... 8o

  • Jüngste Datei löschen

    • Bitnugger
    • 1. Februar 2018 um 18:52

    Oder so...

    AutoIt
    #Include <File.au3>
    
    Local $sFilePath = @DesktopDir & "\Neuer Ordner\"
    If Not FileExists($sFilePath) Then Exit ConsoleWrite('! $sFilePath existiert nicht!' & @CRLF)
    
    ; Dateiliste in Array einlesen
    Local $aFileList = _FileListToArray($sFilePath, "*", $FLTA_FILES)
    If @error Then Exit ConsoleWrite('! _FileListToArray Error: ' & @error & @CRLF)
    
    ; Erstellungsdatum der Dateien besorgen
    _ArrayColInsert($aFileList, 0)
    For $i = 1 To $aFileList[0][1] Step 1
        $aFileList[$i][0] = FileGetTime($sFilePath & $aFileList[$i][1], $FT_CREATED, $FT_STRING)
        If $aFileList[$i][0] = 0 Then Exit ConsoleWrite('! FileGetTime Error: ' & $sFilePath & $aFileList[$i][1] & @CRLF)
    Next
    
    _ArraySort($aFileList, 1, 1)
    For $i = 1 To $aFileList[0][1] Step 1
        ConsoleWrite(($i = 1 ? @CRLF & '! ' : $i = $aFileList[0][1] ? '- ' : '> ') & $aFileList[$i][0] & ' --> ' & StringRegExpReplace($aFileList[$i][0], '(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})', '\3.\2.\1 \4:\5:\6 ') & $aFileList[$i][1] & @CRLF)
    Next
    ConsoleWrite(@CRLF)
    
    ;~ FileDelete($sFilePath & $aFileList[1][1])                ; <-- jüngste Datei
    ;~ FileDelete($sFilePath & $aFileList[$aFileList[0][1]][1]) ; <-- älteste Datei
    Alles anzeigen
  • Trigger einbauen

    • Bitnugger
    • 1. Februar 2018 um 14:48

    Im Anhang findest du eine Demo mit NamedPipes...

    Dateien

    Messwerte.zip 4 kB – 265 Downloads
  • Errormessage Option

    • Bitnugger
    • 31. Januar 2018 um 20:10
    Zitat von Lanealine

    Weißt du Zufällig auch noch wo dran das liegen kann, dass bei mir diese Auswahlmöglichkeiten weg sind ? Habe AutoIT und SciTE schon neuinstalliert, aber bekomme das Menü noch nicht angezeigt.

    Dann hast du womöglich das normale SciTE und nicht SciTE4AutoIt3 installiert...

    Zitat von Lanealine

    und meine au3 Icons sehen genau so aus wie die von .txt Dateien...

    Dann ist die Dateierweiterung ".au3" nicht (mehr) mit SciTE verknüpft, wie es eigentlich der Fall sein sollte.

  • Scite aktuelle Ausführung des Codes anzeigen lassen?

    • Bitnugger
    • 31. Januar 2018 um 20:00

    Was wohl geht, ist folgendes:

    #AutoIt3Wrapper_Run_Debug_Mode=Y                 ;(Y/N) Run Script with console debugging. Default=N

  • Script zum beheben der "Script breaking changes"

    • Bitnugger
    • 30. Januar 2018 um 23:49

    Die Verwendung von Konstanten erspart einem aber auch oft sehr viel Zeit bei der Suche nach Fehlern und es ist meist auch auf dem ersten Blick erkennbar, wenn falsche Werte verwendet verwendet werden. Bei einer Magic Number kann ich mich schnell mal vertippen oder auch verrechnen... chesstiger hat das sehr schön formuliert.

    Ich denke: Je wichtiger/gefählicher die Funktion, umso sparsamer sollte man mit Magic Numbers hantieren.

  • Taskmanager gleich im Tab Details starten

    • Bitnugger
    • 30. Januar 2018 um 22:37
    Zitat von AutoItler

    ControlClick($_handle,'',ControlID) ; Hier liegt das Problem

    ControlID ist keine AutoIt-Variable und zudem auch unnötig, wenn du als ersten Parameter das Handle des Controls angibst. $_handle ist übrigens ein Window-Handle und kein Control-Handle, weshalb die Control-Funktionen evtl. nicht funktionieren.

    AutoIt
    ;-- TIME_STAMP   2018-01-30 23:13:03   v 0.1
    
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseX64=y
    #AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    
    #Region    ;************ Includes ************
    #Include <Array.au3>
    #include <WinGetControls.au3>
    #EndRegion ;************ Includes ************
    
    #RequireAdmin
    
    #NoTrayIcon
    
    Opt('MustDeclareVars', 1)
    
    If Not _CallTaskMgrDetails() Then
        MsgBox(64, 'Taskmanager - Details', 'Es ist ein Problem aufgetreten.' & @CRLF & _
                'Der Taskmanager konnte nicht' & @CRLF & _
                'im TAB "Details" gestartet werden.')
    EndIf
    
    Func _CallTaskMgrDetails()
        Local $iPID = Run(@SystemDir & '\Taskmgr.exe')
        If $iPID = 0 Then Return False
    
        Local $hTaskManagerWindow = WinWait('[CLASS:TaskManagerWindow]', '')
    
        Sleep(2000)
    
        Local $iMove = WinMove($hTaskManagerWindow, '', (@DesktopWidth / 2) - 600, (@DesktopHeight / 2) - 400, 1200, 800)
        Send('!M')
    
        Local $aControls = _WinGetControls($hTaskManagerWindow, $WGC_SHOWVISIBLE, False, False)
        _ArrayDisplay($aControls, '$aControls', '', 0, Default, 'HWND|CLASS|NN|ID|AU3|Visible|xPos|yPos|width|hight|Title|Text')
    
        Return SetExtended($iMove, $iPID)
    EndFunc   ;==>_CallTaskMgrDetails
    Alles anzeigen

    _WinGetControls.png

    Dateien

    WinGetControls.au3 14,35 kB – 298 Downloads
  • Gruppe von Steuerlementen verstecken

    • Bitnugger
    • 25. Januar 2018 um 09:33
    Zitat von Bitboy

    Ich wollte nicht jedes Control einzeln verstecken.

    Es gibt zwar keine Control-Gruppen in AutoIt, aber du kannst die Controls in einem Child-Window erstellen und diese dann als Control-Gruppen missbrauchen.

    ControlGroups.au3
    AutoIt
    ;-- TIME_STAMP   2018-01-25 19:03:55   v 0.1
    
    #Region ;************ Includes ************
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #EndRegion ;************ Includes ************
    
    
    Global $g_hMainGUI, $g_idButton_C, $g_aChildGUIs[3][10], $g_aGroups[3][2]
    
    Global $g_aDiffGuiColors = [0x667F7F, 0x440000, 0x004400, 0x000044]
    Global $g_aSameGuiColors = [0x667F7F, 0x667F7F, 0x667F7F, 0x667F7F]
    Global $g_aButtonColors  = [0xC270CD, 0x5F3060, 0xFF8080, 0x7F4040, 0x80FF80, 0x407F40, 0x8080FF, 0x40407F, 0xD0FF00, 0x88B701, 0xA0FF00, 0x58B701]
    
    _Example()
    
    #Tidy_Off
    Func _Example()
        #Region - GUI Create
        $g_hMainGUI = GUICreate('MainGUI', 1000, 550, -1, -1, -1, $WS_EX_TOPMOST)
        GUISetBkColor($g_aDiffGuiColors[0], $g_hMainGUI)
    
        Local $idComboBox = GUICtrlCreateCombo('Wähle eine Gruppe aus...', 10, 10, 980, 25)
        GUICtrlSetData($idComboBox, 'Gruppe 1 anzeigen|Gruppe 2 anzeigen|Gruppe 3 anzeigen')
    
        Local $idButton_0 = _CreateButton('Hide all child', 10, 40, 980, 25, $g_aButtonColors[0], $g_aButtonColors[1])
        Local $idButton_1 = _CreateButton('Toggle child 1, ignore all other childs',  10, 70, 320, 25, $g_aButtonColors[0], $g_aButtonColors[1])
        Local $idButton_2 = _CreateButton('Toggle child 2, ignore all other childs', 340, 70, 320, 25, $g_aButtonColors[0], $g_aButtonColors[1])
        Local $idButton_3 = _CreateButton('Toggle child 3, ignore all other childs', 670, 70, 320, 25, $g_aButtonColors[0], $g_aButtonColors[1])
    
        Local $idButton_4 = _CreateButton('Show child 1, hide all other childs',  10, 100, 320, 25, $g_aButtonColors[0], $g_aButtonColors[1])
        Local $idButton_5 = _CreateButton('Hide child 2, show all other childs', 340, 100, 320, 25, $g_aButtonColors[0], $g_aButtonColors[1])
        Local $idButton_6 = _CreateButton('Show child 1, hide child 2, toggle child 3, ignore all other childs', 670, 100, 320, 25, $g_aButtonColors[0], $g_aButtonColors[1])
        $g_idButton_C = _CreateButton('Switch GUI-BkColor', 10, 130, 980, 25, $g_aButtonColors[8], $g_aButtonColors[9])
    
        Local $sButton_0_Search = 'Show|Hide', $sButton_0_Replace = 'Hide|Show', $aStates_Button_0 = [['?h'], ['?s']], $i0 = 0
        Local $sButton_4_Search = 'Show|hide', $sButton_4_Replace = 'Hide|show', $aStates_Button_4 = [['1s', '?h'], ['1h', '?s']], $i4 = 0
        Local $sButton_5_Search = 'Hide|show', $sButton_5_Replace = 'Show|hide', $aStates_Button_5 = [['2h', '?s'], ['2s', '?h']], $i5 = 0
        Local $sButton_6_Search = 'Show|hide|toggle|ignore', $sButton_6_Replace = 'Hide|show|toggle|ignore', $aStates_Button_6 = [['1s', '2h', '3t', '?i'], ['1h', '2s', '3t', '?i']], $i6 = 0
    
        Local $idButton_Focus = GUICtrlCreateButton('', 0, 0, 1, 1)
        Local $hButton_Focus = GUICtrlGetHandle($idButton_Focus)
    
        _CreateControlGroups()
    
        ControlFocus($hButton_Focus, '', '')
    
        GUISetState(@SW_SHOW, $g_hMainGUI)
        #EndRegion - GUI Create
    
        Local $iMsg, $iState, $sComboRead
    
        _SwitchControlGroups('?s')
    
        #Region - GUI SwitchLoop
        While True
            $iMsg = GUIGetMsg()
            Switch $iMsg
                Case $GUI_EVENT_CLOSE
                    Exit
                Case $idComboBox
                    ControlFocus($hButton_Focus, '', '')
                    $sComboRead = StringRegExpReplace(GUICtrlRead($idComboBox), '.+(1|2|3).+', '\1s|?h')
                    ConsoleWrite('$sComboRead = ' & $sComboRead & @CRLF)
                    If Int($sComboRead) Then _SwitchControlGroups($sComboRead)
                Case $idButton_0 ; Show/Hilde all child
                    ControlFocus($hButton_Focus, '', '')
                    ConsoleWrite(StringFormat('\r\n+ %s\r\n', _ArrayToString($aStates_Button_0, '|', $i0, $i0)))
                    _SwitchControlGroups(_ArrayToString($aStates_Button_0, '|', $i0, $i0))
                    _Toggle($idButton_0, $sButton_0_Search, $sButton_0_Replace)
                    $i0 = $i0 = 0 ? 1 : 0
                    ConsoleWrite(StringFormat('\r\n+ %s\r\n', _ArrayToString($aStates_Button_0, '|', $i0, $i0)))
                Case $idButton_1 ; Toggle child 1, ignore all other childs
                    ControlFocus($hButton_Focus, '', '')
                    _SwitchControlGroups('1t|?i')
                Case $idButton_2 ; Toggle Child 2, ignore all other childs
                    ControlFocus($hButton_Focus, '', '')
                    _SwitchControlGroups('2t|?i')
                Case $idButton_3 ; Toggle Child 3, ignore all other childs
                    ControlFocus($hButton_Focus, '', '')
                    _SwitchControlGroups('3t|?i')
                Case $idButton_4 ; Toggle "Show child 1, hide all other childs"
                    ControlFocus($hButton_Focus, '', '')
                    ConsoleWrite(StringFormat('\r\n+ %s\r\n', _ArrayToString($aStates_Button_4, '|', $i4, $i4)))
                    _SwitchControlGroups(_ArrayToString($aStates_Button_4, '|', $i4, $i4))
                    _Toggle($idButton_4, $sButton_4_Search, $sButton_4_Replace)
                    $i4 = $i4 = 0 ? 1 : 0
                    ConsoleWrite(StringFormat('! %s\r\n', _ArrayToString($aStates_Button_4, '|', $i4, $i4)))
                Case $idButton_5 ; Toggle "Hide child 2, show all other childs"
                    ControlFocus($hButton_Focus, '', '')
                    ConsoleWrite(StringFormat('\r\n+ %s\r\n', _ArrayToString($aStates_Button_5, '|', $i5, $i5)))
                    _SwitchControlGroups(_ArrayToString($aStates_Button_5, '|', $i5, $i5))
                    _Toggle($idButton_5, $sButton_5_Search, $sButton_5_Replace)
                    $i5 = $i5 = 0 ? 1 : 0
                    ConsoleWrite(StringFormat('! %s\r\n', _ArrayToString($aStates_Button_5, '|', $i5, $i5)))
                Case $idButton_6 ; Toggle "Show child 1, hide child 2, toggle child 3, ignore all other childs"
                    ControlFocus($hButton_Focus, '', '')
                    ConsoleWrite(StringFormat('\r\n+ %s\r\n', _ArrayToString($aStates_Button_6, '|', $i6, $i6)))
                    _SwitchControlGroups(_ArrayToString($aStates_Button_6, '|', $i6, $i6))
                    _Toggle($idButton_6, $sButton_6_Search, $sButton_6_Replace)
                    $i6 = $i6 = 0 ? 1 : 0
                    ConsoleWrite(StringFormat('! %s\r\n', _ArrayToString($aStates_Button_6, '|', $i6, $i6)))
                Case $g_idButton_C
                    ControlFocus($hButton_Focus, '', '')
                    _SwitchChildsBkColor()
                Case $g_aGroups[0][0] To $g_aGroups[0][1]
                    ControlFocus($hButton_Focus, '', '')
                    Switch $iMsg
                        Case $g_aChildGUIs[0][1]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_1 Button_1')
                        Case $g_aChildGUIs[0][2]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_1 Button_2')
                        Case $g_aChildGUIs[0][3]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_1 Button_3')
                    EndSwitch
                Case $g_aGroups[1][0] To $g_aGroups[1][1]
                    ControlFocus($hButton_Focus, '', '')
                    Switch $iMsg
                        Case $g_aChildGUIs[1][1]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_2 Button_1')
                        Case $g_aChildGUIs[1][2]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_2 Button_2')
                        Case $g_aChildGUIs[1][3]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_2 Button_3')
                        Case $g_aChildGUIs[1][4]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_2 Button_4')
                    EndSwitch
                Case $g_aGroups[2][0] To $g_aGroups[2][1]
                    ControlFocus($hButton_Focus, '', '')
                    Switch $iMsg
                        Case $g_aChildGUIs[2][1]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_3 Button_1')
                        Case $g_aChildGUIs[2][2]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_3 Button_2')
                        Case $g_aChildGUIs[2][3]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_3 Button_3')
                        Case $g_aChildGUIs[2][4]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_3 Button_4')
                        Case $g_aChildGUIs[2][5]
                            MsgBox(262208, 'Button gedrückt', 'ChildGUI_3 Button_5')
                    EndSwitch
    ;~              Case Else
            EndSwitch
        WEnd
    #EndRegion - GUI SwitchLoop
    EndFunc  ;==>_Example
    
    Func _SwitchControlGroups($vID)
        ; ? = Other Childs, i = Ignore, h = Hide, s = Show, t = Toggle
        Local $iState, $sShow, $iIndex, $aChilds[1], $aSplit, $hWnd, $hChild
    
        If IsArray($vID) Then
            $aChilds = $vID
        ElseIf StringInStr($vID, '|') Then
            $aChilds = StringSplit($vID, '|', 2)
        Else
            $aChilds[0] = $vID
        EndIf
        ConsoleWrite('! $vID     = ' & $vID & @CRLF)
        ConsoleWrite('! $aChilds = ' & _ArrayToString($aChilds, '|') & @CRLF)
    
        $iIndex = _ArraySearch($aChilds, '?', 0, 0, 0, 1)
        If $iIndex > -1 Then
            $aSplit = StringRegExp($aChilds[$iIndex], '(\d+|\?)(\w)', 1)
            If @error Then Return SetError(1, $iIndex, False)
            _ArrayDelete($aChilds, $iIndex)
            If $aSplit[1] <> 'i' Then
                ConsoleWrite('- $aSplit = ' & _ArrayToString($aSplit, '|') & @CRLF)
                $sShow = $aSplit[1]
                For $i = 0 To UBound($g_aChildGUIs) - 1 Step 1
                    $hWnd = $g_aChildGUIs[$i][0]
                    $iIndex = $i
                    For $j = 0 To UBound($aChilds) - 1 Step 1
                        $aSplit = StringRegExp($aChilds[$j], '(\d+|\?)(\w)', 1)
                        $hChild = $g_aChildGUIs[$aSplit[0] - 1][0]
                        If $hWnd = $hChild Then $iIndex = -1
                    Next
                    If $iIndex > -1 Then
                        ConsoleWrite('> $hWnd   = ' & $hWnd & @CRLF)
                        $hWnd = $g_aChildGUIs[$iIndex][0]
                        Switch True
                            Case $sShow = 'h'
                                $iState = @SW_HIDE
                            Case $sShow = 's'
                                $iState = @SW_SHOW
                            Case $sShow = 't'
                                $iState = BitAND(WinGetState($hWnd), 2) ? @SW_HIDE : @SW_SHOW
                        EndSwitch
                        GUISetState($iState, $hWnd)
                    EndIf
                Next
            EndIf
        EndIf
    
        For $i = 0 To UBound($aChilds) - 1 Step 1
            $aSplit = StringRegExp($aChilds[$i], '(\d+|\?)(\w)', 1)
            If @error Or $aSplit[0] < 1 Then Return SetError(1, $i, False)
            ConsoleWrite('+ $aSplit = ' & _ArrayToString($aSplit, '|') & @CRLF)
            $hChild = $g_aChildGUIs[$aSplit[0] - 1][0]
            ConsoleWrite('+ $hChild = ' & $hChild & @CRLF)
            Switch True
                Case $aSplit[1] = 'h'
                    $iState = @SW_HIDE
                Case $aSplit[1] = 's'
                    $iState = @SW_SHOW
                Case $aSplit[1] = 't'
                    $iState = BitAND(WinGetState($hChild), 2) ? @SW_HIDE : @SW_SHOW
            EndSwitch
    
            GUISetState($iState, $hChild)
        Next
    
        Return True
    EndFunc  ;==>_SwitchControlGroups
    
    Func _SwitchChildsBkColor()
        Local Static $iSwitch = 0, $aBtnColor = [[8, 9], [10, 11]]
    
        Local $aColors = $iSwitch = 0 ? $g_aSameGuiColors : $g_aDiffGuiColors
    
        GUISetBkColor($aColors[0], $g_hMainGUI)
        GUISetBkColor($aColors[1], $g_aChildGUIs[0][0])
        GUISetBkColor($aColors[2], $g_aChildGUIs[1][0])
        GUISetBkColor($aColors[3], $g_aChildGUIs[2][0])
    
        GUICtrlSetColor($g_idButton_C, $g_aButtonColors[$aBtnColor[$iSwitch][0]])
        GUICtrlSetBkColor($g_idButton_C, $g_aButtonColors[$aBtnColor[$iSwitch][1]])
    
        $iSwitch = $iSwitch = 0 ? 1 : 0
    EndFunc  ;==>_SwitchChildsBkColor
    
    Func _GetGroupsMinMaxIDs()
        Local $j
        For $i = 0 To UBound($g_aGroups) - 1 Step 1
            If $g_aChildGUIs[$i][$j] = '' Then ContinueLoop
            $j = 1
            $g_aGroups[$i][0] = $g_aChildGUIs[$i][$j]
            Do
                $j += 1
            Until $g_aChildGUIs[$i][$j] = '' Or $j >= UBound($g_aChildGUIs, 2)
            $g_aGroups[$i][1] = $j < UBound($g_aChildGUIs, 2) ? $g_aChildGUIs[$i][$j - 1] : $g_aGroups[$i][0]
        Next
    EndFunc  ;==>_GetGroupsMinMaxIDs
    
    Func _Toggle($idCtrl, ByRef $sSearch, ByRef $sReplace)
        Local $sTemp, $aSearch = StringSplit($sSearch & '|#', '|', 2), $aReplace = StringSplit($sReplace & '|#', '|', 2)
        If @error Or UBound($aSearch) <> UBound($aReplace) Then Exit 9999
    
        For $i = 0 To UBound($aSearch) - 2 Step 1
            If $i = 0 Then $sTemp = GUICtrlRead($idCtrl)
            $sTemp = StringReplace($sTemp, $aSearch[$i], $aReplace[$i], 1, 1)
        Next
        GUICtrlSetData($idCtrl, $sTemp)
    
        $sTemp = $sSearch
        $sSearch = $sReplace
        $sReplace = $sTemp
    EndFunc  ;==>_Toggle
    
    Func _CreateControlGroups()
        $g_aChildGUIs[0][0] = GUICreate('ChildGUI_1', 900, 100, 10, 175, $WS_CHILD, -1, $g_hMainGUI)
        GUISetBkColor(0x440000, $g_aChildGUIs[0][0])
        $g_aChildGUIs[0][1] = _CreateButton('ChildGUI_1 Button_1',  10, 10, 250, 25, 0xFF8080, 0x7F4040)
        $g_aChildGUIs[0][2] = _CreateButton('ChildGUI_1 Button_2', 270, 10, 250, 25, 0xFF8080, 0x7F4040)
        $g_aChildGUIs[0][3] = _CreateButton('ChildGUI_1 Button_3', 530, 10, 250, 25, 0xFF8080, 0x7F4040)
    
        $g_aChildGUIs[1][0] = GUICreate('ChildGUI_2', 900, 100, 50, 300, $WS_CHILD, -1, $g_hMainGUI)
        GUISetBkColor(0x004400, $g_aChildGUIs[1][0])
        $g_aChildGUIs[1][1] = _CreateButton('ChildGUI_2 Button_1',  10, 10, 250, 25, 0x80FF80, 0x407F40)
        $g_aChildGUIs[1][2] = _CreateButton('ChildGUI_2 Button_2', 270, 10, 250, 25, 0x80FF80, 0x407F40)
        $g_aChildGUIs[1][3] = _CreateButton('ChildGUI_2 Button_3', 530, 10, 250, 25, 0x80FF80, 0x407F40)
        $g_aChildGUIs[1][4] = _CreateButton('ChildGUI_2 Button_4',  10, 50, 770, 25, 0x80FF80, 0x407F40)
    
        $g_aChildGUIs[2][0] = GUICreate('ChildGUI_3', 900, 100, 90, 425, $WS_CHILD, -1, $g_hMainGUI)
        GUISetBkColor(0x000044, $g_aChildGUIs[2][0])
        $g_aChildGUIs[2][1] = _CreateButton('ChildGUI_3 Button_1',  10, 10, 250, 25, 0x8080FF, 0x40407F)
        $g_aChildGUIs[2][2] = _CreateButton('ChildGUI_3 Button_2', 270, 10, 250, 25, 0x8080FF, 0x40407F)
        $g_aChildGUIs[2][3] = _CreateButton('ChildGUI_3 Button_3', 530, 10, 250, 25, 0x8080FF, 0x40407F)
        $g_aChildGUIs[2][4] = _CreateButton('ChildGUI_3 Button_4',  10, 50, 380, 25, 0x8080FF, 0x40407F)
        $g_aChildGUIs[2][5] = _CreateButton('ChildGUI_3 Button_5', 400, 50, 380, 25, 0x8080FF, 0x40407F)
    
        _GetGroupsMinMaxIDs()
    EndFunc  ;==>_CreateControlGroups
    
    Func _CreateButton($sText, $x, $y, $w, $h, $sColor = 0x8F8F8F, $sBkColor = 0x2F2F2F)
        Local $idButton = GUICtrlCreateButton($sText, $x, $y, $w, $h)
        GUICtrlSetColor(-1, $sColor)
        GUICtrlSetBkColor(-1, $sBkColor)
        Return $idButton
    EndFunc  ;==>_CreateButton
    Alles anzeigen

    Dateien

    ControlGroups.au3 13,06 kB – 450 Downloads
  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.2 2017.11.12)

    • Bitnugger
    • 20. Januar 2018 um 17:44
    Zitat von Tweaky

    habs hinzugefügt.

    Allerdings nur bei den deutschen Beschreibungen. Bei den englischen Beschreibungen habe ich nichts geändert.

    Super!

    Allerdings bin ich erstaunt, dass du die englischen Beschreibungen nicht geändert hast, denn dir macht doch keiner Vorschriften, was du ändern darfst, und was nicht... zumal solche Änderungen sicher auch ein Anreiz für die Herren im blauen Forum wäre, einige davon zu übernehmen.

    WinWait

    F: timeout [optional] Maximale Unterbrechungsdauer nach der fortgefahren wird, auch wenn das Fenster noch nicht existiert. Standardwert ist 0 (es wird ewig gewartet).

    R: timeout [optional] Maximale Unterbrechungsdauer in Sekunden, nach der fortgefahren wird, wenn das Fenster nicht existiert. Standardwert ist 0 (es wird ewig gewartet).

    K: Sekunden fehlen...

  • SciTE-AddOn UDF-Funktionsbeschreibung aus Include anzeigen

    • Bitnugger
    • 20. Januar 2018 um 17:23
    Zitat von BugFix
    Warum der Hotkey nicht funktioniert, kann ich mir auch nicht erklären.
    AutoIt
    ConsoleWrite("HotKeySet('^!f', '_Test') ; Ctrl+Alt+f = " & (HotKeySet('^!f', '_Test') = 1)  & @CRLF)
    ConsoleWrite("HotKeySet('^!F', '_Test') ; Ctrl+Alt+F = " & (HotKeySet('^!F', '_Test') = 1)  & @CRLF)
    While 1
        Sleep(100)
    WEnd
    
    Func _Test()
        ConsoleWrite('_Test: @HotKeyPressed = ' & @HotKeyPressed & @CRLF)
        Exit
    EndFunc

    Ausgabe:

    Code
    HotKeySet('^!f', '_Test') ; Ctrl+Alt+f = False
    HotKeySet('^!F', '_Test') ; Ctrl+Alt+F = True
    _Test: @HotKeyPressed = ^!F

    SciteUser.properties

    Code
    # command.shortcut.36.*=Ctrl+Alt+F       - funktioniert nicht!
    # command.shortcut.36.*=Ctrl+Alt+f       - funktioniert nicht!
    # command.shortcut.36.*=Ctrl+Alt+Shift+f - funktioniert!
    # command.shortcut.36.*=Ctrl+Alt+Shift+F - funktioniert!

    Doch welches Mistvieh Ctrl+Alt+f belegt hat, habe ich noch nicht herausfinden können...

  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.2 2017.11.12)

    • Bitnugger
    • 19. Januar 2018 um 01:48
    Zitat von Tweaky

    Was funktioniert denn nicht?

    In dem von mir genannten Beispiel ist der Link klickbar... aber in der Hilfe sind viele Beispiele, bei denen es nicht der Fall ist.

    Hier ist ein paar Beispiele:

    $tagRECT: _WinAPI_CreateRectEx, _WinAPI_CreateRect, _WinAPI_CreateRectRgnIndirect, _WinAPI_DrawFocusRect, _WinAPI_DrawAnimatedRects, _WinAPI_RectIsEmpty, ...
    $tagMENUITEMINFO: _GUICtrlMenu_GetItemInfo, _GUICtrlMenu_InsertMenuItemEx
    $tagWIN32_FIND_STREAM_DATA: _WinAPI_FindNextStream, _WinAPI_SetWindowPlacement

    $tagWINDOWPOS: _GUICtrlHeader_Layout

    $tagWIN32_FIND_DATA: _WinAPI_FindFirstFile

  • CMD Ausgabe zuverlässig erfassen

    • Bitnugger
    • 19. Januar 2018 um 01:16

    1.)

    Zitat von alpines

    Wenn du nur einen Pfeil verwendest ">", dann wird das ganze an das Dateiende angehangen und nicht überschrieben.

    Da behaupte ich jetzt mal frech: Das ist doch mit Sicherheit gelogen. ;)

    Ein ">" bedeutet, dass die Ausgabe in eine Datei umgeleitet wird, die - falls sie existiert - überschrieben wird.

    Zwei ">>" bedeuten, dass die Ausgabe in eine Datei umgeleitet wird, die - falls sie bereits existiert - der Inhalt an das Ende angehangen wird.

    Zitat von Crys

    Der Code ist nicht schön, aber funktioniert ... zumindest meistens.

    Da würde ich jede Wette eingehen, dass dem nicht so ist!!!

    Funktioniert bedeutet bei mir, das ein Script zumindest in 99,8% aller Fälle die von mir erwarteten Ergebnisse liefert... was aber absolut unmöglich ist, wenn nicht mal die einfachsten Grundbausteine korrekt umgesetzt werden, wie es in deinem Script der Fall ist!

    Ich wollte dir zuerst alle fehlerhaften Zeilen aufzeigen... aber entschieden weniger Arbeit ist es, wenn ich dir ein einfaches Beispiel zeige.

    AutoIt: StdoutRead
    ;-- TIME_STAMP   2018-01-19 01:09:51   v 0.1
    
    #Region    ;************ Includes ************
    #Include <File.au3>
    #EndRegion ;************ Includes ************
    
    Local $aMatch = _ReadStdout()
    
    _ArrayDisplay($aMatch, '$aMatch')
    
    Func _ReadStdout()
        Local $sOutput, $iPID = Run(StringFormat('%s /C dir /B /A-D /S "m:\Autoit\*.au3"|findstr /M /R "[_WinAPI|_Crypt]"', @ComSpec), '', @SW_Hide, $STDOUT_CHILD)
        ProcessWaitClose($iPID)
    
        While 1
            $sOutput &= StdoutRead($iPID)
            If @error Then ExitLoop
        WEnd
    
        Return StringSplit(StringTrimRight(StringStripCR($sOutput), StringLen(@CRLF)), @CRLF)
    EndFunc
    Alles anzeigen

    StdoutRead.png

  • Fehler in der deutschen Hilfe bitte hier melden (Hilfedatei 3.3.14.2 2017.11.12)

    • Bitnugger
    • 18. Januar 2018 um 20:16
    Zitat von Tweaky

    Sorry verstehe nicht was du meinst

    Schau dir z. B. die Funktion _GUICtrlTab_GetDisplayRectEx an... unter Verwandte Funktionen... da steht $tagRECT - und wenn du mit der Maus drauf klickst, dann spring die Hilfe zu diesem Eintrag. ;)Klick.png

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™