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

Beiträge von TheLuBu

  • Milisekunden in Uhrzeit umwandeln

    • TheLuBu
    • 27. Dezember 2011 um 10:04

    Ich habe eine Funktion gebraucht, die Millisekunden in ein lesbareres Format umwandelt, herrausgekommen ist diese Funktion.
    Vielleicht kann sie ja jemand gebrauchen

    Spoiler anzeigen
    [autoit]

    ; #FUNCTION#
    ;===============================================================================
    ;
    ; Name...........: _MStoTimeformat
    ; Description ...: Wandelt Millisekunden in das Format HH:MM:SS um
    ; Syntax.........: _MStoTimeformat($MStTf_MS)
    ; Parameters ....: $MStTf_MS - Zeit in Millisekunden (z.B vom TimerDiff() zurückgegeben
    ; Return values .: Success - Gibt die Millisekunden im Format HH:MM:SS zurück
    ; Failure - Returns 0 and Sets @Error:
    ; |1 - $MStTf_MS ist keine Zahl
    ; Author ........: TheLuBu ([email='LuBu@veytal.com'][/email])
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; Link ..........;
    ;
    ;==========================================================================================
    Func _MStoTimeformat($MStTf_MS)
    If not IsNumber($MStTf_MS) Then Return SetError(1,0,0)
    Local $MStTf_vorzeichen = "", $MStTf_Endzeit, $MStTf_Stunden, $MStTf_Minuten, $MStTf_Sekunden, $MStTf_sret
    If $MStTf_MS < 0 Then
    $MStTf_MS = Abs($MStTf_MS)
    $MStTf_vorzeichen = "-"
    EndIf
    $MStTf_Endzeit = $MStTf_MS / 1000
    $MStTf_Stunden = $MStTf_Endzeit / 3600
    $MStTf_Stunden = Int($MStTf_Stunden)
    $MStTf_Minuten = (($MStTf_Endzeit / 60) - ($MStTf_Stunden * 60))
    $MStTf_Minuten = Int($MStTf_Minuten)
    $MStTf_Sekunden = ($MStTf_Endzeit - ($MStTf_Minuten * 60) - ($MStTf_Stunden * 3600))
    $MStTf_Sekunden = Int($MStTf_Sekunden)
    If $MStTf_Stunden < 10 Then $MStTf_Stunden = "0" & $MStTf_Stunden
    If $MStTf_Minuten < 10 Then $MStTf_Minuten = "0" & $MStTf_Minuten
    If $MStTf_Sekunden < 10 Then $MStTf_Sekunden = "0" & $MStTf_Sekunden
    $MStTf_sret = $MStTf_vorzeichen & $MStTf_Stunden & ":" & $MStTf_Minuten & ":" & $MStTf_Sekunden
    Return $MStTf_sret
    EndFunc ;==>MStoTimeformat

    [/autoit]
  • Func beim Wechsel nicht anzeigen

    • TheLuBu
    • 23. Dezember 2011 um 16:02

    Das kannst du auch in einer Funktion machen, nimm die die ich als letztes gepostet habe

  • Func beim Wechsel nicht anzeigen

    • TheLuBu
    • 23. Dezember 2011 um 15:28

    Du hast ein Array mit den ControlID´s der Inptboxen, $ArrayToUse.
    Du wolltest noch die Labels bearbeiten können, Also musst du die auch speichern, das ganze in einem 2ten Array, $arrayToUse2

  • Func beim Wechsel nicht anzeigen

    • TheLuBu
    • 23. Dezember 2011 um 15:05

    ok Step By Step ;)

    [autoit]

    _generateLagerSpalte() called by a previous line with 2 arg(s). Min = 3.

    [/autoit]


    Die Funktion _generateLagerSpalte wurde nur mit 2 Parametern aufgerufen, es werden aber 3 gefordert.

    Ich habe deine Funktion um einen weiteren Parameter erweitert, ByRef $ArrayToUse2

    [autoit]

    C:\Dokumente und Einstellungen\Marc\Desktop\lager au3 datei\Lager.au3(234,37) : REF: first call to _generateLagerSpalte().
    _generateLagerSpalte($aSpalte1,15)

    [/autoit]


    Da haben wir den Funktionsaufruf in Zeile 234, die Funktion wird nur mit ($aSpalte1,15) aufgerufen, es fehlt der 3te Parameter.

    Du musst noch ein weiteres Array übergeben

  • Toolbar32 Dropdown

    • TheLuBu
    • 23. Dezember 2011 um 10:25

    Hallöchen ihr lieben,
    ich sitze grade daran, in einem bestehenden Programm einige Buttons auszublenden bzw. neue "einzufügen" (kein AutoitProgramm.
    Das Ausblenden eines einfachen Buttons hat soweit geklappt, jetzt möchte ich aber nur einen Eintrag eines Buttons mit Dropdownmenü verstecken.

    Den Button an sich habe ich identfiziert, allerdings komme ich nicht an die Dropdownliste dran (oder ich finde sie zumindest nicht ^^).

    Kennt jemand einen Weg, an die Liste zu kommen bzw. einen Eintrag dieser Liste auszublenden?

  • Mit _IE-Funktion Inhalt eines dynamischen Elements auslesen

    • TheLuBu
    • 23. Dezember 2011 um 09:18

    Kannst du die Seite posten, damit man etwas rumprobieren kann?

  • Website hidden login

    • TheLuBu
    • 19. Dezember 2011 um 08:34

    Für den Firefox gibt es das Addon LiveHttp Header, der zeichnet dir alle Post und Gets auf die du brauchst

  • Func beim Wechsel nicht anzeigen

    • TheLuBu
    • 19. Dezember 2011 um 08:20

    Lies mal die Fehlermeldung genau, und schau dir die Änderung an, die ich gemacht habe, dann solltest du eigentlich drauf kommen

  • Skript automatisch anhalten und auf Tastendruck fortsetzen

    • TheLuBu
    • 19. Dezember 2011 um 08:19
    Zitat von Osterhase


    @ TheLuBu
    Das funktioniert auch.
    Ebenso vielen Dank!
    So wird also anscheinend eine Funktion direkt aufgerufen.
    Danke für den Tipp mit der Enter-Taste. Ich kann ja auch eine andere nehmen.
    Leider kann ich mit dem Ausdruck

    [autoit]

    $Paused = NOT $Paused

    [/autoit]


    in der Funktion nichts anfangen. Wie muß ich den verstehen?
    MfG :)

    Alles anzeigen

    $Paused ist eine Boolsche (Boolean) Variable, sie hat nur 2 Werte.
    Wahr = 1
    Falsch = 0

    Der Ausdruck

    [autoit]

    $Paused = NOT $Paused

    [/autoit]

    ändert den Status von 0 auf 1 bzw. von 1 auf 0
    Also wenn $Paused True ist dann würde da stehen
    $paused = Not True
    Wenn $Paused False ist, dann
    $paused = Not False

    Alles was nicht Wahr ist, ist falsch, alles was nicht Falsch ist, ist Wahr

  • Func beim Wechsel nicht anzeigen

    • TheLuBu
    • 16. Dezember 2011 um 18:15
    [autoit]

    Func _generateLagerSpalte(ByRef $ArrayToUse, ByRef $ArrayToUse2 ,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    $ArrayToUse2[$i] = GUICtrlCreateLabel(' Lagerplatz ' ,$left,100+$Abstand,80)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ArrayToUse[$i] = GUICtrlCreateInput("",85+$left,100+$Abstand,170)
    $Abstand +=21
    Next
    EndFunc

    [/autoit]
  • Func beim Wechsel nicht anzeigen

    • TheLuBu
    • 16. Dezember 2011 um 16:55

    Du musst die Labels ebenfalls in einem Array speichern, damit du die verstecken kannst. Mach es einfach genau so wie bei den Inputs

  • Func beim Wechsel nicht anzeigen

    • TheLuBu
    • 16. Dezember 2011 um 15:44

    Ok den Fehler habe ich gefunden:

    Spoiler anzeigen
    [autoit]

    Func _Button7()
    For $i = 1 To Ubound($aSchliesfach1)-1
    GUICtrlSetState($aschliesfach1[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach2)-1
    GUICtrlSetState($aschliesfach2[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach3)-1
    GUICtrlSetState($aschliesfach3[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach4)-1
    GUICtrlSetState($aschliesfach4[$i], $GUI_HIDE)
    Next
    ....
    Func _Button8()
    For $i = 1 TO UBound($aSpalte1) - 1
    GUICtrlSetState($aSpalte1[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte2) - 1
    GUICtrlSetState($aSpalte2[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte3) - 1
    GUICtrlSetState($aSpalte3[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte4) - 1
    GUICtrlSetState($aSpalte4[$i], $GUI_HIDE)
    Next
    ...

    [/autoit]

    Zum Code Umstrukturieren, ich würde alle nicht 4 Arrays (aSpalte1,aSpalte3,aSpalte3,aSpalte4) machen sondern ein mehrdimensionales array
    aSpalte [37][4], dürfte weniger Code sein, dasselbe dann auch bei aschliesfach.

    Allerdings ist es relativ viel Code, der dann umgewandelt werden muss.

    Ist deine entscheidung ;)

    --EDIT-- Weiterhin könntest du auch alle Labels in ein Array packen, dann alle deaktivieren und nur die aktivieren, die du brauchst

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    Global $Labelarray[50]

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

    $Form1 = GUICreate("Form1", 990, 900, 192, 5)
    $left = 0
    $top = 0
    For $i = 0 To 49
    $Labelarray[$i] = GUICtrlCreateLabel("Label" & $i, $left, $top, 50, 15)
    $top += 17
    Next
    $Button = GUICtrlCreateButton("button", 50, $top, 100, 50)
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button ;Button wird gedrückt
    For $i = 0 To UBound($Labelarray) - 1 ;geht alle Labels durch
    Switch $i
    Case 1, 5, 7, 16, 25, 45 ; bei den Labels nichts machen

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

    Case Else
    GUICtrlSetState($Labelarray[$i], $GUI_HIDE) ; alle anderen verstecken
    EndSwitch
    Next
    EndSwitch
    WEnd

    [/autoit]

    Ich bin übers Wochenende nicht am PC,
    wenn du möchtest kann ich den Code aber am Montag/Dienstag umschreiben

  • Au3Info zeigt nichts an

    • TheLuBu
    • 16. Dezember 2011 um 15:25

    Im Au3 Info Tool Unter Options den Hacken bei Freeze rausmachen

  • Au3Info zeigt nichts an

    • TheLuBu
    • 16. Dezember 2011 um 15:01

    Nur als Frage, du weißt das das Au3Info bei dir im Frozen Modus läuft?
    Ist nicht böse gemeint :D

  • Func beim Wechsel nicht anzeigen

    • TheLuBu
    • 16. Dezember 2011 um 13:35

    Also den Teil von Protex müsstest du direkt unter der Funktion _Button7() setzen also

    [autoit]

    Func _Button7()
    For $i = 1 To Ubound($aSchliesfach1)-1
    GUICtrlSetState($aschliesfach[$i], $GUI_HIDE)
    Next

    [/autoit]

    und für Button8 fast dasselbe

    [autoit]

    Func _Button8()
    For $i = 1 TO UBound($aSpalte1) - 1
    GUICtrlSetState($aSpalte1[$i], $GUI_HIDE)
    Next
    ...
    ...
    ...
    EndFunc

    [/autoit]

    --EDIT--
    Wenn du willst, kannst du mal den gesamten Code posten bzw. auch per PN schicken, vielleicht kann man den ja etwas zusammen fassen, ich finde es jetzt schon sehr unübersichtlich :) ;)

  • Select If

    • TheLuBu
    • 16. Dezember 2011 um 11:11
    [autoit]

    #include <Array.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>
    Global $aresult, $iRows, $iColumns
    _SQLite_Startup()
    _SQLite_Open()
    _SQLite_Exec(-1, "CREATE TABLE Data (C_0 VARCHAR(15),C_1 VARCHAR(15),C_2 VARCHAR(15));")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(NULL, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(3, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(4, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(5, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(6, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(7, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(8, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(9, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(10, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(11, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(12, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(13, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(14, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(NULL, 5, 2);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(1, 5, 1);")
    _SQLite_Exec(-1, "INSERT INTO Data VALUES(2, 5, 1);")
    _SQLite_GetTable2d(-1, "SELECT * FROM Data;", $aresult, $iRows, $iColumns)
    _arraydisplay($aresult)
    _SQLite_GetTable2d(-1, "SELECT * FROM Data WHERE C_2 = 1 AND (C_0 IN ('1', '2') OR C_0 IS NULL);", $aresult, $iRows, $iColumns)
    _arraydisplay($aresult)
    _SQLite_Close(-1)

    [/autoit]

    Klammersetzung und es geht auch einfacher ;)

  • Mittlere von 3 Spalten wird nicht angezeigt

    • TheLuBu
    • 13. Dezember 2011 um 11:36

    Ich weiß nicht wie fit du mit SQL bist, aber ich benutze in letzter Zeit sehr viel die SQLite Funktionen.
    Und bei deinem "Problem" finde ich eine Datenbanklösung schon vorteilhaft, besonders wenn es zur Geschwindigkeit kommt ist eine SQL Abfrage deutlich schneller als das durchsuchen einer INI Datei oder eines Arrays

  • FileListToArray Ordner und Dateien unterscheiden???

    • TheLuBu
    • 13. Dezember 2011 um 09:29

    Schau dir mal das hier von BugFix an, der hat die Rekursive Dateiliste schon geschrieben ;)

    Rekursive Datei/Ordner Auflistung per Objekt

    Das ganze liefert dir ein Array zurück.
    Es gibt 2 Möglichkeiten:

    1. Du prüfst 2mal, einmal nur auf Dateien, einmal nur auf Ordner
    2. Du lässt dir beides in einem Array zurückgeben und prüfst dann mit

    [autoit]

    If Stringright($avarray[$i], 1) = "\" Then
    Ordner()
    Else
    Datei()
    EndIF

    [/autoit]
  • Script zu uhrzeit X beenden

    • TheLuBu
    • 12. Dezember 2011 um 16:06
    Zitat von Lottich

    Hallo

    bei dem Beispiel von TheLuBu kann das Programm/Script aber erst gestartet werden, wenn es nach Null Uhr ist, denn sonst würde sich das Script sofort wieder beenden.
    ich würd das so regeln:

    [autoit]

    Func Programm_beenden()
    Local $stunde = "03"
    Local $minute = "45"
    If @HOUR = $stunde And @MIN = $minute Then
    Exit
    EndIf
    EndFunc

    [/autoit]
    Alles anzeigen

    Wie Scritch geschrieben hat, was machst du wenn ein Durchlauf 5 Minuten dauert und der um 03:44 einen Durchlauf startet?

    [autoit]


    $Wday = @WDAY
    $day = 0
    If @HOUR > 9 AND @MIN > 0 Then
    $day = 1
    EndIF

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

    while 1
    If $day = 0 Then
    if @HOUR > 9 AND @MIN > 0 then ExitLoop
    Else
    If @WDAY <> $Wday AND @HOUR > 9 AND @MIN > 0 then ExitLoop
    EndIf
    WEnd

    [/autoit]
  • CMD Befehle senden, ohne CMD zu öffnen?

    • TheLuBu
    • 12. Dezember 2011 um 15:50

    Es gibt 3 möglichkeiten.
    1. ShellExecute mit Programm und Parametern aufrufen
    2. CMD aufrufen und mit WinSetState verstecken, dann mit ControlSend an das CMD Fenster senden.
    3. Temporäre Batch Datei erstellen und ausführen, nach Ausführen wieder löschen ( Also den Dateiinhalt direkt in den Quellcode schreiben)

    GTASpider hatte mal mit der netsh.exe gearbeitet, vielleicht hilft es dir ja

    _LINK

    Zitat

    1. naja, lässt mein programm besser rüberkommen, außerdem keinen bock immer "Run ("cmd")" zu senden

    Du greifst ein- oder mehrmals auf ein fremdes Fenster zu bzw. ein Fremdes Programm, du wirst den Run oder einen ähnlichen Befehl nicht los.
    Den einzigen "Vorteil" den ich sehe, ist das nicht immer wieder das CMD Fenster aufploppt sondern im Hintergrund bleibt

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™