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

  • Input Box minesteingabelänge

    • BugFix
    • 30. August 2013 um 10:49

    Du kannst ja auch während der Eingabe die Schriftfarbe ändern um auf Unterschreiten der Länge aufmerksam zu machen. Das Bsp. ermöglicht dir beliebig viele Inputs mit dieser Funktion zu überwachen, die jeweils unterschiedliche Längen zulassen. Du kannst auch während der Programmausführung die Längen Überschreiben, indem du die Funktion "_SetTextLimit" erneut aufrufst.

    Spoiler anzeigen
    [autoit]

    $hGui = GUICreate('Test')
    $cIn1 = GUICtrlCreateInput('', 20, 20, 150, 20)
    _SetTextLimit($cIn1, 6) ; == Mindestlänge: 6
    $cIn2 = GUICtrlCreateInput('', 20, 60, 150, 20)
    _SetTextLimit($cIn2, 10) ; == Mindestlänge: 10

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    GuiRegisterMsg($WM_COMMAND, 'WM_COMMAND')

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _SetTextLimit($_iControl, $_iLimit, $_sFunc='')
    Local $hCtrl = $_iControl
    If Not IsHWnd($hCtrl) Then $hCtrl = GUICtrlGetHandle($hCtrl)
    Local Static $aCtrl
    Local $aTmp[1][2]
    If $_sFunc = 'get' Then
    If Not IsArray($aCtrl) Then Return -1
    For $i = 0 To UBound($aCtrl) -1
    If $aCtrl[$i][0] = $hCtrl Then Return $aCtrl[$i][1]
    Next
    Return -1
    EndIf
    If Not IsArray($aCtrl) Then
    $aTmp[0][0] = $hCtrl
    $aTmp[0][1] = $_iLimit
    Else
    $aTmp = $aCtrl
    Local $fMatch = False
    For $i = 0 To UBound($aTmp) -1
    If $aTmp[$i][0] = $hCtrl Then
    $aTmp[$i][1] = $_iLimit
    $fMatch = True
    ExitLoop
    EndIf
    Next
    If Not $fMatch Then
    ReDim $aTmp[UBound($aTmp)+1][2]
    $aTmp[UBound($aTmp)-1][0] = $hCtrl
    $aTmp[UBound($aTmp)-1][1] = $_iLimit
    EndIf
    EndIf
    $aCtrl = $aTmp
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit, $iLen
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    Local $iMaxLen = _SetTextLimit($iIDFrom, 0, 'get')
    If $iMaxLen = -1 Then Return $GUI_RUNDEFMSG
    $hWndEdit = GUICtrlGetHandle($iIDFrom)
    $iLen = StringLen(GUICtrlRead($iIDFrom))
    If $iLen < $iMaxLen Then ; == wenn Überschreiten markiert werden soll, einfach ">" statt "<" verwenden
    GUICtrlSetColor($iIDFrom, 0xFF0000)
    Else
    GUICtrlSetColor($iIDFrom, 0x000000)
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]
  • Split String

    • BugFix
    • 30. August 2013 um 09:04

    Was ich bisher vermisse, ist die Systematik der Zielaufschlüsselung. Solange diese fehlt ist das hier nur unproduktives Rätselraten!
    Beschreibe deine Zielfelder:
    • Anzahl
    • Inhalt / Format des Inhalts
    • Inhalt vorhergehendes Feld grenzt sich ab durch... (nicht Trennzeichen, sondern Unterschiede zwischen den Feldern)
    • Inhalt folgendes Feld grenzt sich ab durch...

    Wenn diese Angaben vorhanden sind, kann man sich die eindeutigen Feldzuordnungen als erstes herauspicken und anschließend nach links/rechts iterieren um die Zuordnung zu den anderen Feldern zu Erkennen.

  • AutoIt.de Logo Wettbewerb

    • BugFix
    • 29. August 2013 um 15:56

    Mal mein Senf dazu:
    Wenn überhaupt ein neues Logo, dann sollte kein Bezug auf das aktuelle Jahr vorhanden sein.
    Gründungsjahr ist OK - aber das reicht auch.

    Bin eigentlich der Meinung, dass man das Logo nicht häufig wechseln sollte. Ein Forum sollte auch Stabilität und Kontinuität ausstrahlen, was sich auch im Erscheinungsbild niederschlagen sollte.

  • Controlgettext("") von unbekanntem aber fokussiertem control herausfinden

    • BugFix
    • 29. August 2013 um 15:36

    Du kannst alle VBA-Elemente direkt mit AutoIt ansprechen. Wie die Objekte heissen, kannst du der Worddatei entnehmen (mit VBA-Editor öffnen).

  • Tage pro Monat, Datumsangaben und co. allgemeine Fragen.

    • BugFix
    • 29. August 2013 um 15:00

    Arbeits- Werk- und Feiertage
    Wochen- und Feiertagsermittlung

  • ListView und Selected Item BGC

    • BugFix
    • 28. August 2013 um 15:56

    Wenn das Listview den Fokus verliert, ist die Markierung grau. Mit meiner UDF kannst du das ändern und auch eigene Farben verwenden.

  • Latenzzeiten Telecolumbus (Internetanbieter)

    • BugFix
    • 28. August 2013 um 14:34
    Zitat von YaeroxXO

    Dann kann mir mein derzeitiger Anbieter doch net sagen ich würde über Satelit Inet kriegen ... oder versteh ich das nun falsch?


    Das verstehst du falsch.
    - Du kannst Daten herunterladen mit großer Bandbreite und somit extrem schnell.
    - Du kannst Daten hochladen mit großer Bandbreite auch extrem schnell.
    Nur die Reaktionszeiten sind bei Internet via Satellit aufgrund der beschriebenen Signalwege nunmal nicht unter 0,48 s zu drücken. Für 99% der Internetanwendungen ist das auch völlig in Ordnung. Wenn du allerdings übers INet zocken willst, bist du mit Satelliten-Internet schlecht beraten.

  • Latenzzeiten Telecolumbus (Internetanbieter)

    • BugFix
    • 28. August 2013 um 14:11

    Ich kann dir keine Erfahrungen, sondern nur eine Berechnung bieten:
    • Höhe Satellit: 36.000 km
    • Strecke Hin / Zurück ~ 72.000 km
    • Funkwelle breitet sich mit Lichtgeschwindigkeit aus: 300.000 km/s
    = 0,24 s
    Das heißt:
    - Mausklick an deinem PC Zeitpunkt: 0
    - Signal kommt an Ggenstelle an: +0,24 s
    - Gegenstelle reagiert und du erhältst die Antwort: +0,24 s
    Das heißt, knapp 1/2 Sekunde nach einer Aktion von dir ist eine Reaktion des Gegners auf deinem PC sichtbar. (Verarbeitungszeiten auf dem PC vernachlässigt)

  • webcam bild automatisch speichern

    • BugFix
    • 23. August 2013 um 14:48

    Kannst du meine Web-Cam App verwenden: https://autoit.de/index.php?page…1752#post231752

  • Tidy geht nicht unter Win8 64bit

    • BugFix
    • 23. August 2013 um 10:04

    So wie ich das sehe, ist UAC der "Schuldige". ;)
    Habe ich bei mir aber perse deaktiviert. Tidy ließe sich sicher auch anders schreiben, um nicht mit UAC zu kollidieren. Ich selber verwende Tidy gar nicht, aber wenn echtes Interesse an einer UAC-unabhängigen Variante bestehen sollte, könnte ich mir vorstellen das mit Lua zu schreiben. (Ist aber nicht von heute auf morgen erledigt)

  • AutoInstaller zerbircht mir den Kopf

    • BugFix
    • 23. August 2013 um 09:42
    Zitat von Sergeant Base

    Ausserdem geht es nunmal einfacher und schneller als von Hand und ab und zu muss es halt schnell gehen


    Das hängt nur von den eigenen Fähigkeiten ab. Ich garantiere dir, dass ich eine GUI mit diversen Elementen ohne Koda mindestens genauso schnell, aber sauberer erstelle als irgendwer mit Koda. :P

  • Problem mit if Abfrage (denkfehler meinerseits ?)

    • BugFix
    • 21. August 2013 um 19:47

    ..oder statt der vielfachen Vergleiche, teste mit StringInStr:

    [autoit]

    If StringInStr(" 5 15 21 27 29 48 ", ' ' & $1 & ' ') Then

    [/autoit]


    ;) Viele Wege führen nach Rom.

  • Knight Rider mit "Feststelltaste" und "Num"

    • BugFix
    • 21. August 2013 um 15:54

    Pooh - Leichenschänder. Mal auf das letzte Postdatum geschaut? ;)

    Einfach die Zeile in der WinAPIEx auskommentieren und fertig. Zwischenzeitig sind viele der dort separat deklarierten Konstanten auch Bestandteil des regulären AutoIt.

  • Besitzer festellen - Ordner Problem

    • BugFix
    • 21. August 2013 um 15:52
    Zitat von Volumeman

    aber es könnte auch sein, dass die Funktion Besitzer des Ordners nicht unterstützt wird(?)


    Genau da liegt der Hund begraben. .GetDetailsOf gilt ausschließlich für Dateien.

  • Geklickte Linie in einem Raster erkennen

    • BugFix
    • 21. August 2013 um 09:17
    Zitat von Fliwatt

    denn wie will man zum Beispiel mit Floor diese Linie (im Anhang) bestimmen?


    Ist es tatsächlich wichtig, ob diese Linie geklickt wird (erst mal versuchen diesen Pixel genau zu treffen)? Wenn du ein Spiel mit Kästchen 40x40 machst, halte ich die Zuordnung der Linien für irrelevant.

  • Bei Random Befehl einzelne (bereits erstellte) Zahlen ausschließen

    • BugFix
    • 20. August 2013 um 13:57

    Aber nur bei Oscars und meiner Version sind für 6 Zahlen auch nur 6 Versuche erforderlich. ;)
    Alle anderen arbeiten nach dem Prinzip: Ziehe Zufallszahl solange, bis du eine noch nicht gezogene findest. Je kleiner die zur Verfügung stehende Zahlenmenge, desto länger kann das dauern. Denn wenn ich z.B. 2 aus 4 ziehen soll, erwische ich zu 50% immer dieselbe Zufallszahl.
    Bei Oscar und mir ist es völlig egal, welche Zufallszahl gezogen wird, da diese nur den Index des Ergebnisses liefert. Anschließend wird an diese Position der letzte Wert aus dem Zahlenraum geschrieben und der Bereich um eins verkleinert. Doppelziehung unmöglich, selbst wenn Random immer denselben Wert liefern würde. ;)

  • Geklickte Linie in einem Raster erkennen

    • BugFix
    • 20. August 2013 um 11:18

    Hier mal ein Bsp. mit 20x20 Kästchen.

    Spoiler anzeigen
    [autoit]

    $gui = GUICreate('Test', 420, 420)
    ; Linie=1px -- Kästchen = 20px
    ; Zeichnen:
    For $i = 0 To 19
    GUICtrlCreateLabel('', 21*$i, 0, 1, 420)
    GUICtrlSetBkColor(-1, 0x000000)
    For $j = 0 To 19
    GUICtrlCreateLabel('', 21*$i, 21*$j, 420, 1)
    GUICtrlSetBkColor(-1, 0x000000)
    Next
    Next
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $aMsg = GUIGetMsg(1)
    Switch $aMsg[0]
    Case -3
    Exit
    Case $GUI_EVENT_PRIMARYDOWN
    ;~ $horicontal = Ceiling($aMsg[3]/21) ; == für 1-basierte Angabe
    ;~ $vertical = Ceiling($aMsg[4]/21) ; == für 1-basierte Angabe
    $horicontal = Floor($aMsg[3]/21) ; == für 0-basierte Angabe
    $vertical = Floor($aMsg[4]/21) ; == für 0-basierte Angabe
    ConsoleWrite($horicontal & ', ' & $vertical & @LF)
    EndSwitch
    WEnd

    [/autoit]
  • Bei Random Befehl einzelne (bereits erstellte) Zahlen ausschließen

    • BugFix
    • 19. August 2013 um 19:51

    Dazu hatte ich mal eine Funktion erstellt:

    [autoit]

    ;==============================================================================
    ; Gibt eine Anzahl Zufallszahlen ohne Doppel als String oder Array zurück
    ; Bereich von - bis festlegbar (positiv Integer)
    ; mit -1 für Anzahl werden alle Zahlen des Bereichs in zufälliger Reihenfolge
    ; ausgegeben
    ;==============================================================================
    Func _RandomExt($iBis, $iVon=1, $iAnzahl=-1, $array=0)
    Local $count = $iBis -$iVon +1
    If $iAnzahl = -1 Then $iAnzahl = $count
    Local $aValue[$count], $start = $iVon, $sOut = '', $random
    For $i = 0 To $count -1
    $aValue[$i] = $start
    $start += 1
    Next
    For $i = 0 To $iAnzahl -1
    $random = Random(0, $count -1 -$i, 1)
    $sOut &= $aValue[$random] & ','
    $aValue[$random] = $aValue[$count -1 -$i]
    Next
    $sOut = StringTrimRight($sOut, 1)
    If $array Then Return StringSplit($sOut, ',', 2)
    Return $sOut
    EndFunc ;==>_RandomExt

    [/autoit]
  • Flip Book CMS

    • BugFix
    • 19. August 2013 um 10:02

    Ein Content-Management-System im "Buch-Design" und zum "Umblättern"?!
    Das ist doch eher kontraproduktiv. Solche grafischen Spielereien belasten nur sinnfrei dein System. "Pimp My Software" :thumbdown:

  • 'Ersatz'-Signatur

    • BugFix
    • 18. August 2013 um 15:09

    Mal wieder auf einen aktuellen Stand gebracht.

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™