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

Beiträge von Oscar

  • String suchen

    • Oscar
    • 19. März 2015 um 19:19
    Zitat von TaPS


    Zumindest in dem Beispiel, das Problem ist nun aber, das ich ein komplettes HTML Dokument in einer Variable abgespeichert habe und ich die Uhruzeit suche, das funktioniert mit der Funktion irgendwie nicht, könnte das an den Zeilenumbrüchen liegen?

    Warum wird das nicht gleich in der Problembeschreibung erwähnt?
    Als nächstes kommt dann, dass in dem HTML-Dokument mehrere Uhrzeiten gespeichert sind und dann kommt, dass sie verschiedene Formate aufweisen, etc...
    Ist es wirklich so schwer eine vernünftige Problembeschreibung hinzukriegen? Lasst euch doch nicht jedes Detail aus der Nase ziehen.
    Wenn Du gleich die HTML-Datei mit gepostet hättest, dann hättest Du schon längst die Lösung.

  • String suchen

    • Oscar
    • 18. März 2015 um 19:56

    So:

    [autoit]


    $String="Blaaaaaaaaböa sdfdsfg <jsjdh> 12:23:43 sdfkm omsdopfkl" ;Das hier ist der String mit der Uhrzeit

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

    $Uhrzeit = StringRegExpReplace($String, '.+(\d{2}\:\d{2}\:\d{2}).+', '$1') ;Und in der Variable will ich jetzt die 12:23:43 reinkriegen
    ConsoleWrite($Uhrzeit & @CR)

    [/autoit]
  • Script mit Parametern starten

    • Oscar
    • 18. März 2015 um 18:05

    Wenn ich das als Beispiel verwende:

    Spoiler anzeigen
    [autoit]


    Global $pid

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

    If $CmdLine[0] = 0 Then
    $pid = _runSelf('load')
    ConsoleWrite('PID: ' & $pid & @CR)
    Exit
    EndIf
    MsgBox(0, 0, 'Start with Command: ' & $CmdLine[1])

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

    Func _runSelf($command)
    Local $pid
    If @Compiled Then
    $pid = Run(@ScriptFullPath & ' ' & $command, '', @SW_HIDE, 2 + 1)
    Else
    $pid = Run(@AutoItExe & " " & @ScriptFullPath & ' ' & $command, "", @SW_SHOW, 2 + 1)
    EndIf
    Return $pid
    EndFunc ;==>_runSelf

    [/autoit]


    funktioniert das bei mir (mit v3.3.12.0) sowohl compiliert als auch von SciTE aus gestartet einwandfrei.

  • der Schluss

    • Oscar
    • 18. März 2015 um 17:40

    [verschoben nach "Hilfe und Unterstützung"]

  • Programmabstürze monitoren?

    • Oscar
    • 16. März 2015 um 18:07

    Man könnte auch die Zwischenablage überwachen, dann könnte man eine beliebige Telefonnummer markieren und mit [STRG] & [c] kopieren und das Script konvertiert die Telefonnummer und legt sie wieder in die Zwischenablage, zum einfügen in das Wählprogramm:

    Spoiler anzeigen
    [autoit]


    #include <GuiConstantsEx.au3>
    #include <ClipBoard.au3>
    #include <WindowsConstants.au3>
    #include <SendMessage.au3>

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

    $hGui = GUICreate('ClipboardViewer', 300, 400, @DesktopWidth - 316, 40, BitOR($WS_CAPTION, $WS_POPUPWINDOW, $WS_SIZEBOX))
    $idClipMemo = GUICtrlCreateEdit('', 0, 0, 300, 400, $WS_VSCROLL)
    GUICtrlSetFont(-1, 10, 400, 0, 'Courier New')
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUISetState()
    WinSetOnTop($hGui, '', 1)
    $hNext = _ClipBoard_SetViewer($hGui)
    GUIRegisterMsg($WM_CHANGECBCHAIN, 'WM_CHANGECBCHAIN')
    GUIRegisterMsg($WM_DRAWCLIPBOARD, 'WM_DRAWCLIPBOARD')
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    _ClipBoard_ChangeChain($hGui, $hNext)
    Exit
    EndSwitch
    WEnd

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

    Func WM_CHANGECBCHAIN($hWnd, $iMsg, $iwParam, $ilParam)
    If $iwParam = $hNext Then
    $hNext = $ilParam
    ElseIf $hNext <> 0 Then
    _SendMessage($hNext, $WM_CHANGECBCHAIN, $iwParam, $ilParam, 0, 'hwnd', 'hwnd')
    EndIf
    EndFunc ;==>WM_CHANGECBCHAIN

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

    Func WM_DRAWCLIPBOARD($hWnd, $iMsg, $iwParam, $ilParam)
    Local $sClipBoard = _ClipBoard_GetData()
    Local $_sNumber, $_sNumber2, $_sNumber3, $_sNumber4, $_sNumber5, $_sNumber6
    Local $_sNumber = StringRegExpReplace($sClipBoard, '\(0\)', '', 1); Das erste Vorkommen von (0) wird gelöscht
    ConsoleWrite("1: " & $_sNumber & @CRLF)
    $_sNumber2 = StringRegExpReplace($_sNumber, '(-|\s|\(|\)|/|\\|–|\.)', ''); Entferne - | s | ( | ) | / | \ –
    ConsoleWrite("2: " & $_sNumber2 & @CRLF)
    $_sNumber3 = StringRegExpReplace($_sNumber2, '(\+49|049)', ''); Ersetze ein +49 oder 049 mit Leerzeichen
    ConsoleWrite("3: " & $_sNumber3 & @CRLF)
    $iLength = StringLen($_sNumber3); Bestimme die Länge des Strings
    ConsoleWrite("4: Länge = " & $iLength & @CRLF)
    If $iLength > 3 Then; Wenn der String größer 3 ist dann, gehe in die IF Schleife
    $_sNumber4 = StringLeft($_sNumber3, 1); Prüfe das 1. Zeichen von Links
    If $_sNumber4 = "0" Then; Wenn das erste Zeichen von Links eine Null ist, gehe in die IF Schleife
    ConsoleWrite("5: If ist wahr, also 0 dann: " & $_sNumber4 & @CRLF)
    $_sNumber5 = StringRegExpReplace($_sNumber3, '0', '', 1); Wenn die erste Ziffer eine Null ist, dann durch ein Leerzeichen ersetzen
    ConsoleWrite("6: " & $_sNumber5 & @CRLF)
    $_sNumber6 = ("+49" & $_sNumber5); Setze + 49 vor die Nummer
    ConsoleWrite("7: " & $_sNumber6 & @CRLF)
    Else
    ConsoleWrite("5: If ist unwahr, also nicht 0 dann: " & $_sNumber4 & @CRLF)
    ConsoleWrite("6: " & $_sNumber3 & @CRLF)
    $_sNumber6 = ("+49" & $_sNumber3); Setze + 49 vor die Nummer
    ConsoleWrite("7: " & $_sNumber6 & @CRLF)
    EndIf
    ClipPut($_sNumber6); schreibe das Ergebnis in die Zwischenablage zurück
    EndIf
    GUICtrlSetData($idClipMemo, $_sNumber6 & @CRLF, 1)
    If $hNext <> 0 Then _SendMessage($hNext, $WM_DRAWCLIPBOARD, $iwParam, $ilParam)
    EndFunc ;==>WM_DRAWCLIPBOARD

    [/autoit]

    P.S.: Es gibt keine If-Schleifen! Es handelt sich dabei um bedingte Anweisungen. :)

  • Programmabstürze monitoren?

    • Oscar
    • 16. März 2015 um 14:49

    Send-Befehle sind oft problematisch.
    Dieser Umweg über die Zwischenablage ist auch nicht gerade optimal.
    Kannst Du den Inhalt nicht direkt auslesen (ControlGetText), bearbeiten und wieder zurückschreiben (ControlSetText)?
    Mit ControlClick kannst Du auch Buttons fernsteuern (statt [ENTER]).

  • GDI+ /WinAPI Absturz bei Exit

    • Oscar
    • 16. März 2015 um 14:17

    Du verwendest die falschen Befehle zum löschen der Bitmaps!
    $h_Exit_hImage ist eine GDIPlus-Bitmap und muss mit _GDIPlus_ImageDispose gelöscht werden.
    $h_Exit_Bmp ist eine GDI-Bitmap und muss mit _WinAPI_DeleteObject gelöscht werden.
    Also genau anders herum, wie Du es in dem Beispiel geschrieben hast.

  • Permanente Zustandsabfrage / Schleifen SOFORT verlassen

    • Oscar
    • 10. März 2015 um 05:27

    Es gibt eine menge Möglichkeiten (Timer-Befehle, AdlibRegister)!
    Das Problem ist aber, dass Du nicht Deine Aufgabenstellung beschreibst, sondern nur Deine missglückten Versuche einstellst.
    Also beschreib doch mal was Du vorhast und was wo ausgeführt werden soll.

  • 2D array nach 2 Spalten sortieren (Spalten haben unterschiedliche Sortierrichtungen)

    • Oscar
    • 8. März 2015 um 20:04

    Oder mal schnell eine eigene Sortierfunktion schreiben:

    Spoiler anzeigen
    [autoit]


    #include <array.au3>
    ; Declare
    Global $array[5][4]
    $array[0][0] = "KartNo"
    $array[0][1] = "Laps"
    $array[0][2] = "Time"
    $array[0][3] = "Handle"
    $array[1][0] = "Kart 1"
    $array[1][1] = 2
    $array[1][2] = 94
    $array[1][3] = $array[1][0] & "-" & $array[1][1] & "-" & $array[1][2]
    $array[2][0] = "Kart 2"
    $array[2][1] = 2
    $array[2][2] = 90
    $array[2][3] = $array[2][0] & "-" & $array[2][1] & "-" & $array[2][2]
    $array[3][0] = "Kart 3"
    $array[3][1] = 1
    $array[3][2] = 56
    $array[3][3] = $array[3][0] & "-" & $array[3][1] & "-" & $array[3][2]
    $array[4][0] = "Kart 4"
    $array[4][1] = 1
    $array[4][2] = 55
    $array[4][3] = $array[4][0] & "-" & $array[4][1] & "-" & $array[4][2]
    _ArrayDisplay($array, "Unsortiert")
    _SortArray($array)
    _ArrayDisplay($array, "Sortiert")

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

    Func _SortArray(ByRef $array)
    Local $iRow = UBound($array) - 1
    For $i = 1 To $iRow
    For $j = $i + 1 To $iRow
    Select
    Case $array[$i][1] < $array[$j][1]
    _SwitchElement($array, $i, $j)
    Case $array[$i][1] = $array[$j][1]
    If $array[$i][2] > $array[$j][2] Then _SwitchElement($array, $i, $j)
    EndSelect
    Next
    Next
    EndFunc

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

    Func _SwitchElement(ByRef $array, $i, $j)
    Local $Tmp
    For $Col = 0 To UBound($array, 2) - 1
    $Tmp = $array[$i][$Col]
    $array[$i][$Col] = $array[$j][$Col]
    $array[$j][$Col] = $Tmp
    Next
    EndFunc

    [/autoit]


    Das ist vermutlich zwar nicht die schnellste Variante (da BubbleSort ähnlich), aber bei kleinen Arrays kann man das vernachlässigen.

  • MusikPlayer mit Equalizer,Playlist, etc.

    • Oscar
    • 7. März 2015 um 18:21

    Du benutzt "-1" als Style bei dem Listview. Default bzw. "-1" ist aber:

    [autoit]

    $LVS_SHOWSELALWAYS, $LVS_SINGLESEL

    [/autoit]


    also SingleSelect.
    Du müsstest den Style auf:

    [autoit]

    $LVS_SHOWSELALWAYS

    [/autoit]


    setzen, damit eine Mehrfachauswahl möglich ist.

  • Runs Befehl und ich steh auf dem Schlau

    • Oscar
    • 6. März 2015 um 18:02

    Strings und Variablen verknüpft man mit dem &-Zeichen und in Deiner Zeile fehlen da einige dieser Zeichen. :rolleyes:

  • Suche mit Ausgabe in ein anderen fenster

    • Oscar
    • 6. März 2015 um 16:33

    Ich habe das mal angepasst (viel überflüssiges entfernt):

    Spoiler anzeigen
    [autoit]


    #AutoIt3Wrapper_Icon=\favicon.ico

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

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <IE.au3>

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

    Opt('GUIOnEventMode', 1)
    Opt('GUICloseOnESC', 0)
    Opt("TrayAutoPause", 0)
    Opt("TrayMenuMode", 1)
    Opt("TrayOnEventMode", 1)

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

    TraySetIcon(@ScriptDir & "\favicon.ico")

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("txt", 890, 780, 50, 5)
    $Label1 = GUICtrlCreateLabel("txt", 770, 5, 36, 17)
    $Label2 = GUICtrlCreateLabel("txt", 290, 5, 100, 60)
    $Input1 = GUICtrlCreateInput("", 680, 20, 200, 21)
    $oIE = _IECreateEmbedded()
    $Obj = GUICtrlCreateObj($oIE, 10, 20, 657, 729)
    GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    GUISetIcon(@ScriptDir & "\favicon.ico")
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit')
    GUISetBkColor(0x87CEEB)

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

    $Menu_File = GUICtrlCreateMenu("Info")
    $Menu_File_Item = GUICtrlCreateMenuItem("About", $Menu_File)
    GUICtrlSetOnEvent(-1, '_About')

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

    TraySetState()
    TraySetToolTip("txt")
    TrayCreateItem("Beenden")
    TrayItemSetOnEvent(-1, "_Exit")

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

    While Sleep(1000)
    WEnd

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

    Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $hCtrl = $lParam
    If $nNotifyCode = 1024 Or $nNotifyCode = 786 Then
    If $hCtrl = GUICtrlGetHandle($Input1) Then
    $suchbegriff = GUICtrlRead($Input1) & ".html"
    If FileExists($suchbegriff) Then _IENavigate($oIE, @ScriptDir & "/" & $suchbegriff)
    EndIf
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>MY_WM_COMMAND

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

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

    Func _About()
    Run("About.exe")
    EndFunc ;==>_About

    [/autoit]
  • Auch selbst gelöste Problem sollten geteilt werden!!!

    • Oscar
    • 5. März 2015 um 14:00

    Diejenigen, die es betrifft und die bereit sind ihr Verhalten zu ändern, die finden den Beitrag auch hier.
    Die anderen sind sowieso lernresistent und würden den Beitrag auch dann ignorieren, wenn er in 10 cm großen Buchstaben auf dem Monitor erscheint.

  • Auch selbst gelöste Problem sollten geteilt werden!!!

    • Oscar
    • 5. März 2015 um 10:18

    [verschoben nach: Talk]

  • "Lebensanzeige" aus Spiel auslesen - vibrierende Tastatur :)

    • Oscar
    • 2. März 2015 um 19:14

    Nein, wir unterstützen sowas hier nicht!
    Auch wenn hier eine andere "Ausrede" benutzt wird.
    [closed]

  • Problem | Inhalt der Inpubox per E-Mail versenden

    • Oscar
    • 1. März 2015 um 16:40

    Versuch mal:

    [autoit]


    $IPPort= 587
    $ssl = 0

    [/autoit]
  • Galgenraten-Spiel (FullHD)

    • Oscar
    • 28. Februar 2015 um 18:08

    Funktionierend nicht, aber es wurde bereits eine Bestenliste erstellt.
    Da die Datei aber verschlüsselt abgespeichert wird und ich das Passwort mit dieser Version geändert habe, hätte eigentlich eine neue Liste erstellt werden müssen.
    Ich muss da nochmal nachforschen, evtl. gibt es dort einen Bug. Danke jedenfalls für die Rückmeldung! :)

  • Galgenraten-Spiel (FullHD)

    • Oscar
    • 27. Februar 2015 um 18:50

    Den Bug kann ich nicht nachvollziehen! Bei mir klappt das alles (ich habe schon mehrere Einträge in der Bestenliste).
    Vor allem warum fehlt der Platz 665 ganz?
    Kannst Du mal die HiScore-Datei "Galgenraten4.hsc" aus dem Ordner "<Anwendungsdaten>\Galgenraten4\" löschen?
    <Anwendungsdaten> = z.B.: "c:\Users\Oscar\AppData\Roaming\"

  • m4a nach mp3 konvertieren

    • Oscar
    • 26. Februar 2015 um 17:14

    Vom Lame-Encoder gibt es doch eine CLI-Version: http://www.heise.de/download/lame-mp3-encoder.html
    Damit sollte das sicherlich machbar sein.

  • alte Version von SciTE4AutoIt gesucht

    • Oscar
    • 25. Februar 2015 um 10:16

    Sorry, ich wusste nicht, dass File-Upload die Dateien verändert. Habe die Datei jetzt mal auf meine Homepage gepackt (Link oben geändert).

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™