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

  • Skript neustarte ohen externe Datei

    • BugFix
    • 13. Februar 2009 um 11:14

    Hi,
    hier mal ein Bsp.
    Der User ändert die Hintergrundfarbe, diese wird sofort übernommen und ist dann auch weiterhin (nach neuem Starten) gültig.
    Du kannst natürlich viel mehr Parameter dort hinterlegen.

    Spoiler anzeigen
    [autoit]

    Global $INI = @ScriptDir & '\meine.ini'
    If Not FileExists($INI) Then
    IniWrite($INI, 'start', 'guiCol', '0xf0000f')
    EndIf
    Global $guiBkCol = IniRead($INI, 'start', 'guiCol', '0xf0000f')

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

    $gui = GUICreate('Test')
    $lb = GUICtrlCreateLabel('Neue Hintergrundfarbe als Hex(0xff00ff)', 10, 10, 200)
    $in = GUICtrlCreateInput('', 10, 35, 80)
    $bt = GUICtrlCreateButton('Einstellung setzen', 110, 35, 100, 20)
    GUISetState()

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

    _Settings()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $bt
    If GUICtrlRead($in) <> '' Then
    $guiBkCol = '0x' & Hex(GUICtrlRead($in))
    IniWrite($INI, 'start', 'guiCol', $guiBkCol)
    _Settings()
    EndIf
    EndSwitch
    WEnd

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

    Func _Settings()
    If $guiBkCol Then GUISetBkColor($guiBkCol, $gui)
    EndFunc

    [/autoit]
  • Skript neustarte ohen externe Datei

    • BugFix
    • 13. Februar 2009 um 10:50

    Vielleicht ist es einfacher, wenn du erklärst, wozu das Skript neu aufgerufen werden soll.
    Ich vermute, Einstellungen für das Skript werden geändert und zur Wirksamkeit soll das Skript damit neu starten?
    Wenn dem so ist, solltest du diese Parameter in einer Funktion setzen und einfach die Funktion dann aufrufen.

  • Neues _array2Dadd Problem mit Value '|'

    • BugFix
    • 13. Februar 2009 um 10:24

    Hi,
    ja ist sinnvoll das variabel zu gestalten. Ich passe das auch so nach und nach überall an. Allerdings bevorzuge ich als Standard den in Opt("GUIDataSeparatorChar") hinterlegten Wert (üblicherweise ist das '|'). Wer aber diese Option im Skript mit einem anderen Wert besetzt, braucht es dann im Funktionsaufruf nicht extra tun.

    Spoiler anzeigen
    [autoit]

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;
    ; Function _Array2DAdd(ByRef $avArray, $sValue='', $Delim=Default)
    ;
    ; Description Redim Array Size and add an Array element at last position
    ; Works with any occurences in 2nd Dimension
    ; Works also with 1D-Array
    ;
    ; Parameter $avArray Given Array
    ; optional $sValue Value of new Element, parts must be seperate with Delim
    ; by Default the Opt("GUIDataSeparatorChar")
    ; Return Succes -1
    ; Failure 0 and set @error
    ; @error = 1 given array is not array
    ; @error = 2 given parts of Element too less/much
    ;
    ; Author BugFix ([email='bugfix@autoit.de'][/email])
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    Func _Array2DAdd(ByRef $avArray, $sValue='', $Delim=Default)
    If ( Not IsArray($avArray) ) Then
    SetError(1)
    Return 0
    EndIf
    If $Delim = Default Then $Delim = Opt("GUIDataSeparatorChar")
    Local $UBound2nd = UBound($avArray,2)
    If @error = 2 Then
    ReDim $avArray[UBound($avArray)+1]
    $avArray[UBound($avArray)-1] = $sValue
    Else
    Local $arValue
    ReDim $avArray[UBound($avArray)+1][$UBound2nd]
    If $sValue = '' Then
    For $i = 0 To $UBound2nd-2
    $sValue &= $Delim
    Next
    EndIf
    $arValue = StringSplit($sValue, $Delim)
    If $arValue[0] <> $UBound2nd Then
    SetError(2)
    Return 0
    EndIf
    For $i = 0 To $UBound2nd-1
    $avArray[UBound($avArray)-1][$i] = $arValue[$i+1]
    Next
    EndIf
    Return -1
    EndFunc ;==>_Array2DAdd

    [/autoit]
  • 2D Spiel Hilfe

    • BugFix
    • 12. Februar 2009 um 23:02
    Zitat von Oger-Lord

    Gibt es einen Geschwindigkeits unterschied zwischen arrays und structs?
    Und wenn ja, welches ist schneller? ;)


    Habs jetzt mal getestet, hier das Skript:

    Spoiler anzeigen
    [autoit]

    ; Vergleichstest Array vs. Structs

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

    Global $testStruct1 = DllStructCreate("int;int;int;int;int;int;int;int;int;int")
    Global $testStruct2 = DllStructCreate("int a[5];int b[5];int c[5];int d[5];int e[5];int f[5];int g[5];int h[5];int i[5];int j[5]")
    Global $array1[10]
    Global $array2[10][5]
    Global $aRandom
    Global $start, $t, $sumStr1 = 0, $sumStr2 = 0, $sumAr1 = 0, $sumAr2 = 0
    Global $runs = 100
    For $i = 1 To $runs
    $aRandom = _GetRandomVal(10)
    $start = TimerInit()
    _SetStruct1($aRandom)
    _GetStruct1()
    $t = TimerDiff($start)
    ConsoleWrite('$t_s1 = ' & $t & @crlf)
    $sumStr1 += $t
    $start = TimerInit()
    _SetArray1($aRandom)
    _GetArray1()
    $t = TimerDiff($start)
    ConsoleWrite('$t_a1 = ' & $t & @crlf)
    $sumAr1 += $t

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

    $aRandom = _GetRandomVal(50)
    $start = TimerInit()
    _SetStruct2($aRandom)
    _GetStruct2()
    $t = TimerDiff($start)
    ConsoleWrite('$t_s2 = ' & $t & @crlf)
    $sumStr2 += $t
    $start = TimerInit()
    _SetArray2($aRandom)
    _GetArray2()
    $t = TimerDiff($start)
    ConsoleWrite('$t_a2 = ' & $t & @crlf& @crlf)
    $sumAr2 += $t
    Next

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

    ConsoleWrite(@CRLF & 'Durchschnittszeiten Schreiben + Lesen' & @CRLF)
    ConsoleWrite('Struct 1: ' & @TAB & $sumStr1/$runs & @CRLF)
    ConsoleWrite('Array 1: ' & @TAB & $sumAr1/$runs & @CRLF)
    ConsoleWrite('Struct 2: ' & @TAB & $sumStr2/$runs & @CRLF)
    ConsoleWrite('Array 2: ' & @TAB & $sumAr2/$runs & @CRLF)

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

    Func _GetRandomVal($i)
    Local $aRandom[$i]
    For $i = 0 To UBound($aRandom) -1
    $aRandom[$i] = Random(100, 10000, 1)
    Next
    Return $aRandom
    EndFunc

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

    Func _SetStruct1(ByRef $aRandom)
    For $i = 1 To 10
    DllStructSetData($testStruct1, $i, $aRandom[$i-1])
    Next
    EndFunc

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

    Func _SetStruct2(ByRef $aRandom)
    $k = 0
    For $i = 1 To 10
    For $j = 1 To 5
    DllStructSetData($testStruct2, $i, $aRandom[$k], $j)
    $k += 1
    Next
    Next
    EndFunc

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

    Func _GetStruct1()
    For $i = 1 To 10
    ConsoleWrite(DllStructGetData($testStruct1, $i) & @CRLF)
    Next
    EndFunc

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

    Func _GetStruct2()
    For $i = 1 To 10
    For $j = 1 To 5
    ConsoleWrite(DllStructGetData($testStruct2, $i, $j) & @CRLF)
    Next
    Next
    EndFunc

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

    Func _SetArray1(ByRef $aRandom)
    For $i = 0 To 9
    $array1[$i] = $aRandom[$i]
    Next
    EndFunc

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

    Func _SetArray2(ByRef $aRandom)
    $k = 0
    For $i = 0 To 9
    For $j = 0 To 4
    $array2[$i][$j] = $aRandom[$k]
    $k += 1
    Next
    Next
    EndFunc

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

    Func _GetArray1()
    For $i = 0 To 9
    ConsoleWrite($array1[$i] & @CRLF)
    Next
    EndFunc

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

    Func _GetArray2()
    For $i = 0 To 9
    For $j = 0 To 4
    ConsoleWrite($array2[$i][$j] & @CRLF)
    Next
    Next
    EndFunc

    [/autoit]


    Es siegt das Array :)

  • Auf Kriegsfuß mit den Regular Expressions

    • BugFix
    • 12. Februar 2009 um 17:11
    Zitat von Stilgar

    Warum denn nicht gleich so:


    Weil man dazu 'ne Ahnung von Java haben müßte... :P

  • Auf Kriegsfuß mit den Regular Expressions

    • BugFix
    • 12. Februar 2009 um 16:48
    Zitat von anno2008

    Für was braucht man da überhaupt ne Gruppe?


    Dadurch (das Ignorieren) wird der Suchvorgang beschleunigt. Bei großen Texten durchaus spürbar.

  • Auf Kriegsfuß mit den Regular Expressions

    • BugFix
    • 12. Februar 2009 um 16:38

    Man kann veranlassen, dass Gruppen ignoriert werden (mit ?:)
    So gehts:

    [autoit]

    #include <array.au3>
    $str = '<div id="konstant"><font color="#444444">'
    $ret = StringRegExp($str, '(?:<div id="konstant"><font color="#)([0-9a-fA-F]{6})', 3)
    If IsArray($ret) Then _ArrayDisplay($ret)

    [/autoit]
  • Auf Kriegsfuß mit den Regular Expressions

    • BugFix
    • 12. Februar 2009 um 16:31

    Werd mal deutlicher: Was ist das Ausgangsmaterial und was möchtest du als Ergebnis haben.

  • Mausverfolger oder Wie kann ich etwas "direkt" auf den Bildschirm malen

    • BugFix
    • 12. Februar 2009 um 11:27
    Zitat von L3viathan2142

    Und wie geht das dann mit den 1D-Arrays?
    Funktionen Push oder Pop nicht gefunden ?(


    Du kannst meine 2D-Funktionen natürlich auch für 1D-Arrays verwenden. ;)
    Aber AutoIt hat:

    [autoit]

    _ArrayPush()
    _ArrayPop()

    [/autoit]
  • Mausverfolger oder Wie kann ich etwas "direkt" auf den Bildschirm malen

    • BugFix
    • 12. Februar 2009 um 09:47
    Zitat von L3viathan2142

    Wo wir grade beim Thema sind: kann man mit AutoIt eigentlich ein FIFO machen?


    Standardmäßig wird von AutoIt (leider mal wieder) nur für 1D-Arrays Push und Pop angeboten. Deshalb hatte ich diese Funktionen auch für 2D-Array erstellt: ArrayMore.au3

  • Laufwerk suchen dann kopieren

    • BugFix
    • 12. Februar 2009 um 09:40

    Nur mal kurz ein paar Anregungen.
    Die Pfade, die du verwenden/abfragen willst unterscheiden sich nur im Lw-Buchstaben.
    Also kannst du das Ganze in einer einzigen kurzen Schleife erledigen:

    [autoit]

    Global $path = ':\Test-Drive\'
    For $i = Asc('d') To Asc('z')
    If FileExists(Chr($i) & $path) Then
    ; copy ==> Pfad ist: Chr($i) & $path
    ExitLoop
    EndIf
    Next

    [/autoit]


    Wenn ein neues USB-Gerät angesteckt wird, startet die Hardwareerkennung. (mit rundll32.exe)
    Wie du das verwerten kannst, findest du in meinem Skript ManageUSB.

    Edit: Ich merke schon, wenn ich erst alle neuen Themen aufklappe und dann nach und nach durchgehe, hat bestimmt schon wer vor mir geantwortet. :D

  • XSL Quelltext auslesen

    • BugFix
    • 11. Februar 2009 um 22:26
    Zitat von NetZwerg2005


    Ich dachte eigtl es gibt ne generell andere Angehensweise um XSL-Quelltexte auszulesen.


    Quelltext laden und dann bearbeiten ist schon der richtige Weg. Allerdings kann ich zu den FF-Funktionen nichts sagen, da ich keinen FF verwende.

  • XSL Quelltext auslesen

    • BugFix
    • 11. Februar 2009 um 21:58

    Vielleicht solltest du etwas Code beisteuern..

  • Button + Bild

    • BugFix
    • 11. Februar 2009 um 21:05

    Ich sehe hier nur ein Problem:
    Du postest nicht deinen kompletten Code. Denn irgendwas machst du anders als hier in den Snippets sichtbar. Aber auch die gezeigten Codeteile zeigen nur, dass du nicht gewillt bist, unsere Ratschläge anzunehmen. Somit kannst du wohl kaum noch auf unsere Unterstützung rechnen.

    Ende und Aus!

  • TreeView Edit funktioniert nicht (Bsp aus der Hilfe)

    • BugFix
    • 11. Februar 2009 um 21:00

    Kann das nur bestätigen. Aber diese Funktion ist eh völlig nutzlos.
    Besser:

    [autoit]

    _GUICtrlTreeView_SetText($hTreeView, $hItem[0], "This is a test")

    [/autoit]
  • Bin der Neue

    • BugFix
    • 11. Februar 2009 um 20:54

    Herzlich Willkommen!
    Und aus meiner Sicht bist du noch jung ( alle die jünger sind als ich, sind jung! :D ).
    Ich denke, du wirst hier genug Antworten auf deine Fragen finden.

  • Button + Bild

    • BugFix
    • 11. Februar 2009 um 20:15
    Zitat von Hacksor

    Muss aber stimmen.


    Das hatte ich übersehen. LOL $msg=$pic ist IMMER True
    Du mußt schon die ID abfragen.

  • Button + Bild

    • BugFix
    • 11. Februar 2009 um 19:52

    Ich weiß nicht, was du sonst noch in dem Code hast, oder ob du besondere Optionen hast. Aber aus dem sichtbaren Code ist eine MouseHoover-Funktion, wie von dir beschrieben, nicht herleitbar.

  • Wie kann man das machen das wenn man checkbox1 anklickt und dann checkbox2 und 3 nicht mehr ankilcken kann ?

    • BugFix
    • 11. Februar 2009 um 17:38
    Zitat von Dubbel

    sind alle 3 mit häckchen


    Sorry, aber ich glaub wir sind nicht vom selben Stern.
    Mindestens 3 Leute haben dir mehrfach gesagt, du sollst RADIO-Control verwenden!!
    Was machst du? - Nimmst weiter Checkboxen.
    Also dafür ist mir jetzt meine Zeit zu schade.

  • Wie kann man das machen das wenn man checkbox1 anklickt und dann checkbox2 und 3 nicht mehr ankilcken kann ?

    • BugFix
    • 11. Februar 2009 um 17:31

    Ich weiß nicht, wo du deine Augen hast. Du kannst mit diesem Skript IMMER NUR EIN RadioControl markieren.
    Und damit Ende - Aus!

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™