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

Beiträge von BugFix

  • Umstieg auf Windows 10 - Ratschläge und Tipps gesucht

    • BugFix
    • 24. Oktober 2019 um 17:40

    Ist vielleicht nicht das, was du wissen willst.

    Mein Umstieg sah so aus:

    - PC mit Windows 10

    - Oracle VM VirtualBox installiert

    - Win7 in der Box installiert

    - wieder glücklich! Um Win 10 muss ich mich nur beim Ein- und Ausschalten kümmern

    Was aber echt krass ist: Trotz 16 GB RAM und reservierten 6 GB für die VM bremst das Scheiß Windows Update den Rechner total aus. Zumal du ja nicht gefragt wirst, ob es dir gerade passt, das zu installieren. Und dann werden da mal eben 3 GB drübergebügelt. :Face: - Win 10 ist m.M. nach das schlechteste (benutzerunfreundlichste) Windows bisher.

  • Listview Item färben - Color Picker

    • BugFix
    • 24. Oktober 2019 um 09:20
    Zitat von Werty

    Check out BugFix's UDF "Listview - SubItem einzeln färben/formatieren"

    Na, das wäre hierfür wohl etwas overdressed.

    Einfacher Ansatz: Item OHNE die Listview-UDF erstellen! Dann hat man ID für jedes Item und kann somit auch einzeln färben. Wenn man die Item-ID in einem Array auffängt, kann man das zur Laufzeit auch ändern.

    Einfache Lösung:

    AutoIt
    #include <GuiListView.au3>
    
    Global $aColors[] = ['#E15318','#A123FE','#DEDEDE','#1313F1']
    
    Global $hGui = GUICreate('Test')
    Global $idListview = GuiCtrlCreateListView('FARBEN', 10, 10, 90, 120)
    _SetColorsFromArray($aColors, $idListview)
    
    GUISetState()
    
    Do
    Until GUIGetMsg() = -3
    
    Func _SetColorsFromArray($_aCol, $_idLV)
        Local $hLV = GUICtrlGetHandle($_idLV)
        Local $colItem, $idItem
        _GUICtrlListView_BeginUpdate($hLV)
        _GUICtrlListView_DeleteAllItems($hLV)
        For $i = 0 To UBound($_aCol) -1
            $colItem = '0x' & StringTrimLeft($_aCol[$i], 1)
            $idItem = GUICtrlCreateListViewItem($_aCol[$i], $_idLV)
            GUICtrlSetBkColor($idItem, $colItem)
        Next
        _GUICtrlListView_EndUpdate($hLV)
    EndFunc
    Alles anzeigen

    Colormixer mit Picker hatte ich auch mal erstellt, vielleicht ist das auch interessant für dich.

  • Outlook 2019 und Mobilfunk (getaktete Verbindung)

    • BugFix
    • 19. Oktober 2019 um 09:28

    Wenn nichts anderes geht:

    Nimm WinSpy und kontrolliere den Nachrichtenfluss bei Erscheinen der Meldung. Das Fenster (hiermit ist auch jede Art von Ctrl gemeint) mit der Nachricht sollte sich so identifizieren lassen.

    Falls kein Fenster ersichtlich ist, das die Msg empfängt, bleibt nur ein Hook, um die Msg bei Auftauchen zu verwerfen. Musst du natürlich exakt die Umgebungsparameter abklären können, damit die Msg nur im gewollten Fall verworfen wird.

  • string durch variablen ersetzen und ConsolenProggi während der Laufzeit verstecken

    • BugFix
    • 18. Oktober 2019 um 12:08

    Oder mit StringFormat arbeiten:

    $cmd = StringFormat('%s /setvalue:"Password Minimum Length","4" /cspwdfile:pw03.bin /verbose', $sSecHPPW)

    $Status = Run($cmd, "", "", $STDOUT_CHILD)

    Da AutoIt zwei Stringbezeichner zulässt, sollte man das auch nutzen und innere von äußeren Strings durch Verwendung unterschiedlicher Markierung abgrenzen. Ist übersichtlicher als die Maskierung mit sich selbst.

  • VBScript - Ereignis mitbekommen per Schleife?

    • BugFix
    • 12. Oktober 2019 um 13:13

    Ich hab dir mal ein Bsp. gemacht, wie du von ausserhalb selbst auf Tastaturevents in PSPad reagieren kannst:

    C
    ;===================================================================================================
    ;     Bsp. Auto-Ersetzen mit Hook in PSPad
    ;   Umlaute und ß
    ;   linke Shift ergibt z.B. Ae, rechte Shift und CapsLock ergibt AE
    ;   Ä- Ae (AE)        ä - ae
    ;   Ö- Oe (OE)        ö - oe
    ;   Ü- Ue (UE)        ü - ue
    ;                     ß - ss
    ;=================================================================================================== 
    
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <StructureConstants.au3>
    
    OnAutoItExitRegister("_KeyHookOf")
    
    HotKeySet('^!{F7}', '_Exit') ; Strg+Alt+F7 zum manuellen Beenden
    
    Global $g_procPSPad = "PSPad.exe"
    Global $g_classPSPad = "TfPSPad"
    Global $g_editPSPad = "TPSSynEdit1"
    Global $g_hPSPad, $g_hActive
    Global $g_bPSPadActive = False, $g_bEditActive = False
    Global $g_hKeyProc, $g_hMod, $g_hHook, $g_bShift = False
    Global $g_user32 = DllOpen("user32.dll")
    
    ; Starte Tastatur-Hook
    _KeyHookOn()
    
    
    
    While True
        If ProcessExists($g_procPSPad) Then
            $g_hPSPad = WinGetHandle(StringFormat("[CLASS:%s]", $g_classPSPad))
        Else
            $g_hPSPad = 0
        EndIf
        $g_hActive = WinGetHandle("[ACTIVE]")
        $g_bPSPadActive = ($g_hActive = $g_hPSPad)
        Sleep(10)
    WEnd
    
    Func _Exit()
        Exit
    EndFunc
    
    
    Func _KeyHookOn()
        ; Registrieren der Funktion "_KeyProc" als Callback
        $g_hKeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
    
        ; Installieren einer eigenen Prozedur zur Verarbeitung der Tastaturereignisse
        $g_hMod = _WinAPI_GetModuleHandle(0)
        $g_hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($g_hKeyProc), $g_hMod)
    EndFunc
    
    Func _KeyHookOf()
        ; Entfernen der eigenen Key-Prozedur
        _WinAPI_UnhookWindowsHookEx($g_hHook)
        DllCallbackFree($g_hKeyProc)
        ; Dll Handle schliessen
        DllClose($g_user32)
    EndFunc
    
    Func _KeyProc($_nCode, $_wParam, $_lParam)
        Local Const $KEYEVENTF_KEYUP = 0x0002
        Local $tKEYHOOKS, $vkCode, $ret, $bCapsLock = False
        $ret = DllCall($g_user32, "long", "GetKeyState", "long", 0x14)
        If $ret[0] Then $bCapsLock = True
        $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $_lParam)
    
        ; kommen Events vom Editor, wenn NEIN --> verlassen
        If $_nCode < 0 Or Not $g_bPSPadActive Then Return _WinAPI_CallNextHookEx($g_hHook, $_nCode, $_wParam, $_lParam)
    
        ; hat das Editorfeld von PSPad den Focus, wenn NEIN --> verlassen
        If ControlGetFocus($g_hPSPad) <> $g_editPSPad Then Return _WinAPI_CallNextHookEx($g_hHook, $_nCode, $_wParam, $_lParam)
    
        ; Tastaturereignisse auswerten
        $vkCode = DllStructGetData($tKEYHOOKS, "vkCode")
    
        ; auf Ereignis "Taste gedrückt" reagieren
        If $_wParam = $WM_KEYDOWN Then
            If $vkCode = 0xA0 Or $vkCode = 0xA1 Then
                $g_bShift = True
            EndIf
            Switch $vkCode
                Case 0xBA ; ü ==> ue
                    _keybd_event(0x55)
                    If $g_bShift Then _keybd_event(0xA0, $KEYEVENTF_KEYUP)  ; Shift-Taste lösen
                    _keybd_event(0x45)
                    Return -1         ; verhindert, dass ursprüngliche Nachricht an das System weitergegeben wird
                Case 0xC0 ; ö ==>oe
                    _keybd_event(0x4F)
                    If $g_bShift Then _keybd_event(0xA0, $KEYEVENTF_KEYUP)
                    _keybd_event(0x45)
                    Return -1
                Case 0xDB ; ß ==> ss - nicht ausführen, wenn Shift/Capslock aktiv
                    If $g_bShift Or $bCapsLock Then Return _WinAPI_CallNextHookEx($g_hHook, $_nCode, $_wParam, $_lParam)
                    _keybd_event(0x53)
                    _keybd_event(0x53)
                    Return -1
                Case 0xDE ; ä ==> ae
                    _keybd_event(0x41)
                    If $g_bShift Then _keybd_event(0xA0, $KEYEVENTF_KEYUP)
                    _keybd_event(0x45)
                    Return -1
            EndSwitch
        Else
            Switch DllStructGetData($tKEYHOOKS, "flags")
                Case 0x80, 0x81 ; 0x80= UP für 'normale' Tasten u. li. paarige,  0x81= UP für paarige
                    If $vkCode = 0xA0 Or $vkCode = 0xA1 Then $g_bShift = False ; LShift, RShift
            EndSwitch
        EndIf
        Return _WinAPI_CallNextHookEx($g_hHook, $_nCode, $_wParam, $_lParam)
    EndFunc
    
    ; vkCodes: https://docs.microsoft.com/de-de/windows/win32/inputdev/virtual-key-codes
    Func _keybd_event($_vkCode, $_iFlag=0)
        Local Const $KEYEVENTF_EXTENDEDKEY = 0x0001
        DllCall($g_user32, 'int', 'keybd_event', 'int', $_vkCode, 'int', 0, 'int', BitOR($KEYEVENTF_EXTENDEDKEY, $_iFlag), 'ptr', 0)
    EndFunc
    Alles anzeigen
  • VBA Makro - Öffne Adresse in Google Maps

    • BugFix
    • 11. Oktober 2019 um 15:26

    Ich habe meine Aufträge in Exceltabelle vorliegen mit den Adressen in Form: PLZ|ORT|STRASSE_NR.

    Um mal schnell in Maps nachzuschauen, wo genau die Adresse liegt, habe ich mir ein kleines Makro geschrieben. Vielleicht auch nützlich für euch.

    Adressfelder markieren und das Makro ausführen. Es ist egal, wie viel Felder für die Adresse genutzt werden, das Makro verbindet alle markierten Feldinhalte und öffnet damit Maps.

    Python
    Sub OpenMaps()
    '
    ' Open Google Maps in default browser with selected address
    
        Dim address As String
        address = Selection.address(ReferenceStyle:=xlA1, RowAbsolute:=False, ColumnAbsolute:=False)
        
        Dim cellRange As Range
        Set cellRange = Excel.ActiveSheet.Range(address)
        
        Dim result As String
        Dim nColumns As Integer
        nColumns = cellRange.Count
           
        For i = 1 To nColumns
            result = result & "+" & cellRange.Cells(1, i).Value
        Next i
        
        Dim urlMap As String
        urlMap = "www.google.com/maps/place/" & Replace(Right(result, Len(result) - 1), " ", "+")
        'MsgBox urlMap
        
        Set wshshell = CreateObject("WScript.Shell")
        wshshell.Run urlMap
        
    End Sub
    Alles anzeigen
  • VBScript - Ereignis mitbekommen per Schleife?

    • BugFix
    • 11. Oktober 2019 um 10:08

    Ich klinke mich mal kurz ein, da ich der Meinung bin, du verrennst dich.

    - Funktionen lassen sich in PSPad nur ausführen, wenn sie in einem Skript vorliegen und dieses eine INIT-Routine enthält (diese wird beim Start von PSPad gelesen)

    - Diese Funktionen müssen an einen Menüpunkt oder an einen Hotkey gekoppelt sein

    - PSPad stellt keine Events bereit auf die reagiert werden kann

    - Es gibt kein globales Startup-Skript, indem man zum Bsp. Callbackfunktionen registrieren könnte

    Fazit:

    Eine Individualisierung außerhalb von Menüpunkten und Hotkeys ist nicht vorgesehen und somit mit internen Mitteln des Editors nicht lösbar.

    Vielleicht lässt sich mit Message-Hooking, Injection, o.ä. Zugriff auf die erforderlichen Events erhalten. Bleibt zu prüfen, ob der Aufwand in irgendeinem sinnvollen Verhältnis zum Nutzen steht.

    Sehr gut individualisieren lassen sich (neben SciTE) z.B. die Editoren Visual Studio Code oder auch Sublime Text. Du musst entscheiden, ob dir Klicki-Bunti-Oberfläche wichtig ist, oder ein funktionaler, sehr gut erweiterbarer Editor.

  • Oscars Listview-Datenbank v3 - mit Suche nach mehreren Begriffen

    • BugFix
    • 8. Oktober 2019 um 20:24

    Ich lass mal ein paar Gedanken los.

    - Du möchtest die Möglichkeit haben die Suchbegriffe ohne fixe Reihenfolge einzugeben.

    - Die Bedienung soll per Mausklick erfolgen.

    Das kann man mit SQLite-DB lösen, ist aber auch noch nicht optimal an diese Situation angepasst (Schwachstelle: ungewisse Reihenfolge der Suchbegriffe).

    Was ist für eine optimale Lösung erforderlich?

    - Eingabe irgendeines Begriffes aus der Suchkette sollte sowohl abwärts (Children) als aufwärts (Parent) rekursiv verfügbare Begriff(ketten) auflisten

    - Durch diese Begriffe kann man sich dann zum Ziel durchklicken bzw. wenn ein Eintrag fehlt, diesen neu erfassen.

    - Begriffe sollten also mit entsprechenden Verweisen (auf/abwärts) gespeichert sein

    Die Aufgabe lautet also: Welche Datenbank(struktur) ermöglicht dieses schwarmartige Speichern. Hier würde ich Ansetzen und das wäre doch auch mal eine interessante Aufgabe, sowas in AutoIt umzusetzen.

    Ich habe keine Ahnung, ob und wie das umzusetzen geht. - Sind halt nur Gedanken.

  • VBScript - Ereignis mitbekommen per Schleife?

    • BugFix
    • 8. Oktober 2019 um 19:17
    Zitat von Professor Bernd

    Kennst du Dbug?

    Ja. Wo ist der Zusammenhang? Ich sagte doch:

    "Ähm, es liegt in der Natur von AutoIt als Interpretersprache, dass man es NICHT und in KEINEM Editor debuggen kann, wie man es vielleicht von C++ kennt."

    Und Dbug arbeitet nicht im Editor selbst, sondern kopiert den Inhalt des Editors in ein Schattenskript, fügt in dieses Skript Auswertezeilen ein um Werte zu debuggen und führt das Skript ausserhalb des eigenen Editors aus.

    Debuggen im Editor selbst funktioniert z.B. mit VBA-Skripten im VBA-Editor. Kannst du ja mal in Excel oder Word ausprobieren um den markanten Unterschied zu sehen.

  • Oscars Listview-Datenbank v3 - mit Suche nach mehreren Begriffen

    • BugFix
    • 8. Oktober 2019 um 16:24
    Zitat von alpines

    Ich glaub du hastn Brett vorm Kopf. Der Sinn RegEx zu nutzen ist es ja das ganze eleganter auszudrücken und abzukürzen.

    Und ich glaub, du bist auf Krawall gebürstet. :P

    Ich bin nur darauf eingegangen, dass eine UND-Verknüfung sehr wohl mit RegExp möglich ist (es war nicht die Rede davon, dass das im Pattern passieren muss). Ob das sinnvoll ist, stand gar nicht zur Debatte. Das muss eh jeder für sich selbst einordnen.

    Wirklich "sinnvoll" ist weder RegExp noch StringInStr. Wie schon in dem Thread, auf dem dieser basiert, besprochen, sollte man das mit SQLite lösen. Elegant, geschmeidig und sauschnell auch bei zigtausend Einträgen. :thumbup:

  • Oscars Listview-Datenbank v3 - mit Suche nach mehreren Begriffen

    • BugFix
    • 8. Oktober 2019 um 15:03
    Zitat von Banana_2_Day

    Gedanke zu StringRegExp - da die Worte in der Reihenfolge wechseln können, scheidet StringRegExp wohl aus für eine UND-Suche.

    Bei einer UND Suche ist die Reihenfolge völlig schnuppe:

    C
    Local $aTest[] = [ _
    "Der Hund hat die Katzen in das Waldgrundstück gejagt.", _
    "Die zwei Katzen sind in den Wald gelaufen."]
    
    For $i = 0 To UBound($aTest) -1
        If StringRegExp($aTest[$i], "Hund") And _
            StringRegExp($aTest[$i], "Katze") And _
            StringRegExp($aTest[$i], "Wald") Then
            ConsoleWrite('gefunden: ' & @CRLF & $aTest[$i] & @CRLF)
        EndIf
    Next
    
    For $i = 0 To UBound($aTest) -1
        If StringRegExp($aTest[$i], "Wald") And _
            StringRegExp($aTest[$i], "Katze") And _
            StringRegExp($aTest[$i], "Hund") Then
            ConsoleWrite('gefunden: ' & @CRLF & $aTest[$i] & @CRLF)
        EndIf
    Next
    Alles anzeigen
  • VBScript - Ereignis mitbekommen per Schleife?

    • BugFix
    • 6. Oktober 2019 um 18:55
    Zitat von Professor Bernd

    Öffne ein Script das mehr beinhaltet, als das SciTE-Fenster anzeigen kann, markiere Wörter oder 1, 2 Zeilen, dann versuche sie mit der Maus nach unten in den Bereich zu ziehen, der nicht angezeigt wird.

    Ja und? Wo soll jetzt das Problem sein. Wenn du nicht gewillt bist dir SciTE zu eigen zu machen (steht dir frei), solltest du dir aber ersparen darauf herum zu hacken. Ich habe zig AddOns für SciTE geschrieben, aber in der Regel nachdem jemand fragte "Könnte man das in SciTE realisieren?". Auf "Mist das SciTE das nicht kann!" werde ich dann auch nicht gewillt sein anzuspringen.

    Zitat von Professor Bernd

    Debugger und Formdesigner sind suboptimal

    Ähm, es liegt in der Natur von AutoIt als Interpretersprache, dass man es NICHT und in KEINEM Editor debuggen kann, wie man es vielleicht von C++ kennt.

  • VBScript - Ereignis mitbekommen per Schleife?

    • BugFix
    • 6. Oktober 2019 um 18:28
    Zitat

    Hier haben doch einige Erfahrung mit dem WSH und COM-Objekten, kann mir da jemand ein wenig helfen?

    Wir wissen ja nicht, welches Objekt du behandeln möchtest, welche Methoden und Eigenschaften dieses besitzt. Insofern nützt die Kenntnis vom Umgang mit Objekten rein gar nichts.

    Zur Verwendung von Events: Diese sind effektiver als jede Schleife. Sie werden NUR ausgelöst, wenn ein Ereignis (Taste gedrückt, Taste gelöst, Zeichen in Editor eingefügt etc.) eintritt. Mittels Callback Funktion wird dann ausgewertet.

  • _ArrayMaxIndex

    • BugFix
    • 6. Oktober 2019 um 13:38
    Zitat von water

    Könnte man diesen Beitrag eventuell anpinnen? Sonst geht er ruck-zuck unter. Wie es aussieht, kann ich das nicht selbst machen obwohl ich PU bin.

    Eventuell könnte man all/einige der gepinnten Themen von Der Doc entpinnen, da sie mit 2010/2011 doch ziemlich alt sind.

    Was meint Ihr?

    Erledigt

  • Taskleiste ausblenden - welches Programm verhindert das

    • BugFix
    • 5. Oktober 2019 um 10:01

    Wie ich vorgehen würde:

    - einklinken in die Windows-Messages (Hook)

    - wenn Nachricht gesendet wird: SHOW an Fenster Taskbar

    -- mit Handle des Senders der Nachricht

    -- in Prozessauflistung nach diesem Handle suchen

    Es kann natürlich sein, dass die Nachricht vom Fenster eines Prozesses gesendet wurde und somit keine Übereinstimmung der Handle besteht. In diesem Fall müsste man noch eine Fensterauflistung zu allen Prozessen machen und wiederum die Fensterhandle abgleichen.

  • Escape-Sequenzen

    • BugFix
    • 2. Oktober 2019 um 11:59

    ShellExecute('bcu64.exe', '/setvalue:"Password Minimum Length","4" /cspwdfile:%publicPW% /verbose') funktioniert nicht? Ggf. 'WorkingDir' setzen.

    Slash ist kein Zeichen, das escaped werden muss.

  • Frage zu MouseCoordMode

    • BugFix
    • 30. September 2019 um 15:06
    Zitat von BigRox

    Die angegebenen Koordinaten sind ja nur bei einer Skalierung von 120 % gültig und müssten daher beim Ändern der Skalierung jedesmal angepasst werden.

    Kann man eigentlich irgendwie erreichen, dass die Koordinaten immer automatisch an die eingestellte Skalierung angepasst werden?

    Gib deine Koordinaten nicht als Fixwerte ein, sondern berechne den Berichtigungsfaktor beim Skriptstart in einer Funktion.

    Mal ohne jede Richtigkeit von Werten - nur als Idee:

    C
    $x_Korrektur = _Skalierung('x')
    $y_Korrektur = _Skalierung('y')
    
    ; im Skript statt z.B. $x = 45
    $x = Int(45 * $x_Korrektur)
    
    Func _Skalierung($_param)
        Local Static $percentScale = ; Abfragen Skalierung - hab ich gerade nicht im Kopf 
        Local $iCalc
        Switch $_param
            Case 'x'
                ; Berechnung des Korrekturfaktors ($iCalc) für x
            Case 'y'
                ; Berechnung des Korrekturfaktors ($iCalc) für y
        EndSwitch
        Return $iCalc
    EndFunc
    Alles anzeigen
  • ISN AutoIt Studio

    • BugFix
    • 30. September 2019 um 12:16
    Zitat von mep

    bei eine If Schleife

    [OT]

    Da es so grauselig ist, kann ich mir den Kommentar nicht verkneifen.

    If - Then gehört zu den Conditional Statments.

    Das hier sind die Schleifen: Loop Statements.

    [/OT]

  • WebDriver- Chrome Browser

    • BugFix
    • 25. September 2019 um 12:58

    Hinweis:

    Wenn du Nicht-Standard-UDF verwendest, verlinke in deinem Post/Skript auf die Quelle.

  • Snippet: Erstellen von beliebiger Anzahl gleicher GUI-Elemente in Spalten und Zeilen

    • BugFix
    • 25. September 2019 um 12:52

    Bei der GUI-Gestaltung mit gleichen Elementen, tabellenförmig angeordnet, probiert man ja meist etwas, bis es passabel aussieht. D.h., Anzahl Zeilen, Spalten sowie Abstände variieren.

    Mit diesem Snippet fällt alle Rechnerei weg, es werden nur die Startwerte verändert. Bsp. ist mit Button, kann natürlich mit anderen Controls genauso verwendet werden.

    Python
    Global $hGui = GUICreate('Test')
    
    ; Definieren der variablen Größen
    Global $iColumn = 7  ; Anzahl Spalten
    Global $iLine   = 4  ; Anzahl Zeilen
    Global $iStartX = 30 ; x Position für das erste Element
    Global $iStartY = 20 ; y Position für das erste Element
    Global $iWidth  = 40 ; Breite jedes Elements
    Global $iHeight = 25 ; Höhe jedes Elements
    Global $iSpaceH = 10 ; horizontaler Abstand zwischen den Elementen
    Global $iSpaceV = 20 ; vertikaler Abstand zwischen den Elementen
    ; Button Text kann vorab im Array, das nachher die ID speichert, hinterlegt werden
    Global $aButton[$iColumn*$iLine] = ['Anna','Berta','Cäsar','Dora','Emil','Fritz','Gero','Hans']
    
    For $i = 0 To ($iColumn*$iLine -1)
        $aButton[$i] = GUICtrlCreateButton( ($aButton[$i]<>'' ? $aButton[$i] : $i+1), _                      ; Button Text
                                            $iStartX+Mod($i,$iColumn)*($iWidth+$iSpaceH), _                  ; x Position
                                            $iStartY+(($i-Mod($i,$iColumn))/$iColumn)*($iHeight+$iSpaceV), _ ; y Position
                                            $iWidth,  $iHeight )                                             ; Breite & Höhe
    Next
    
    GUISetState()
    
    While True
        $nMsg = GUIGetMsg()
        If $nMsg = -3 Then
            Exit
        Else
            For $i = 0 To UBound($aButton) -1
                If $nMsg = $aButton[$i] Then
                    ConsoleWrite('Clicked: ' & GUICtrlRead($nMsg) & @CRLF)
                    ExitLoop
                EndIf
            Next
        EndIf
    WEnd
    Alles anzeigen

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™