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

  • [Anfrage] Möchte Stoppuhr mit USB Button und Eingabeformular programmieren

    • Oscar
    • 3. Dezember 2018 um 18:55

    Warum benutzt ihr nicht Mod?

    $iMiiliSecs = Mod($g_iTicks, 1000)

  • Zeile löschen mit _FileWriteToLine funktioniert nicht mehr

    • Oscar
    • 3. Dezember 2018 um 17:48

    Ja, das ist ein Bug!

    Wenn die Zeile gelöscht werden soll, wird trotzdem ein @CRLF eingefügt. Das ist natürlich Unsinn!

    Ich habe die Funktion mal entsprechend abgeändert:

    C
    Func _FileWriteToLineNew($sFilePath, $iLine, $sText, $bOverWrite = False, $bFill = False)
        If $bOverWrite = Default Then $bOverWrite = False
        If $bFill = Default Then $bFill = False
        If Not FileExists($sFilePath) Then Return SetError(2, 0, 0)
        If $iLine <= 0 Then Return SetError(4, 0, 0)
        If Not (IsBool($bOverWrite) Or $bOverWrite = 0 Or $bOverWrite = 1) Then Return SetError(5, 0, 0)
        If Not IsString($sText) Then
            $sText = String($sText)
            If $sText = "" Then Return SetError(6, 0, 0)
        EndIf
        If Not IsBool($bFill) Then Return SetError(7, 0, 0)
        ; Read current file into array
        Local $aArray = FileReadToArray($sFilePath)
        ; Create empty array if empty file
        If @error Then Local $aArray[0]
        Local $iUBound = UBound($aArray) - 1
        ; If Fill option set
        If $bFill Then
            ; If required resize array to allow line to be written
            If $iUBound < $iLine Then
                ReDim $aArray[$iLine]
                $iUBound = $iLine - 1
            EndIf
        Else
            If ($iUBound + 1) < $iLine Then Return SetError(1, 0, 0)
        EndIf
        ; Write specific line - array is 0-based so reduce by 1 - and either replace or insert
        $aArray[$iLine - 1] = ($bOverWrite ? $sText : $sText & @CRLF & $aArray[$iLine - 1])
        ; Concatenate array elements
        Local $sData = ""
        For $i = 0 To $iUBound
            $sData &= $aArray[$i] & ($aArray[$i] <> '' ? @CRLF : '')
        Next
        $sData = StringTrimRight($sData, StringLen(@CRLF)) ; Required to strip trailing EOL
        ; Write data to file
        Local $hFileOpen = FileOpen($sFilePath, FileGetEncoding($sFilePath) + $FO_OVERWRITE)
        If $hFileOpen = -1 Then Return SetError(3, 0, 0)
        FileWrite($hFileOpen, $sData)
        FileClose($hFileOpen)
        Return 1
    EndFunc   ;==>_FileWriteToLineNew
    Alles anzeigen
  • _FileCopyEx

    • Oscar
    • 30. November 2018 um 15:21

    Die Funktion kann jetzt auch ein FileMove statt FileCopy ausführen.

    Alle erfolgreich kopierten Dateien werden im Quellverzeichnis gelöscht.

    Neue Version in Post#1.

  • Parameter in Date.au3 nicht wie in der Norm

    • Oscar
    • 27. November 2018 um 13:28
    Zitat von Musashi

    Wäre eine AutoIt.de-eigene 'SammelUDF', die die gängigsten Macken mittels Wrapperfunktionen beseitigt, ein gangbarer Weg ?

    Das halte ich für keine gute Idee!

    Selbst wenn sich jemand findet, der das pflegt, bleibt immer noch, dass man bei jeder Frage hier im Forum nachfragen muss, ob die "AutoIt.de"-UDF oder die originale UDF verwendet wurde.

    Und im Laufe der Zeit wird es dann auch noch verschiedene Versionen der "AutoIt.de"-UDF geben (andere Versionsnummern).

  • Sehr schnell in GUI schreiben

    • Oscar
    • 27. November 2018 um 10:43
    Zitat von DasIch

    Hättest nur ein bisschen kommentieren können, lieber Oscar

    Ist der so kompliziert?

    Naja gut, vielleicht ist das für Anfänger wirklich noch zu viel. Ich habe das Script mal ausgiebig kommentiert (siehe Anhang in Post #8).

  • Sehr schnell in GUI schreiben

    • Oscar
    • 26. November 2018 um 17:32

    Ich hatte gerade mal Lust dazu, eine Stoppuhr zu schreiben.

    Vielleicht willst Du das Script ja weiterverwenden (siehe Anhang).

    Screenshot:

    screenshot.png

    Dateien

    Stoppuhr.au3 18,43 kB – 496 Downloads
  • Zeit berechnen

    • Oscar
    • 26. November 2018 um 11:53
    Zitat von Alf_H

    Beide im Format HH:MM:SS.

    Und da liegt der Fehler!

    _DateDiff erwartet Datum und Uhrzeit, nicht nur die Uhrzeit:

    Input Start/End date in the format "YYYY/MM/DD[ HH:MM:SS]"

    Das bedeutet, dass Du zwar die Uhrzeit weglassen kannst, aber auf keinen Fall das Datum.

  • GUICtrlCreateLabel (Box an TextGröße anpassen)

    • Oscar
    • 26. November 2018 um 09:21

    Vielleicht so:

    C
    #include <GUIConstantsEx.au3>
    #include <SendMessage.au3>
    #include <WinAPIGdiDC.au3>
    #include <WinAPIGdiInternals.au3>
    #include <WinAPIHObj.au3>
    #include <WinAPISysInternals.au3>
    #include <WindowsConstants.au3>
    
    Global $hGui = GUICreate('Test', 1000, 600)
    GUISetFont(12, 400, 0, 'Arial')
    Global $idLabel = GUICtrlCreateLabel('Das ist ein Test 1234', 10, 20)
    GUICtrlSetFont(-1, 32, 400, 2, 'Times New Roman')
    GUICtrlSetBkColor(-1, 0xAAAAEE)
    _ChangeLabelSize($idLabel)
    GUISetState(@SW_SHOW, $hGui)
    MsgBox(0, 'Test', 'Textgroesse veraendern')
    GUICtrlSetData($idLabel, 'Ein neuer Text 5678')
    GUICtrlSetFont($idLabel, 64, 600, 2, 'Times New Roman')
    _ChangeLabelSize($idLabel)
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    
    Func _ChangeLabelSize($idCtrl)
        Local $hWnd, $hDC, $hFont, $hSelectObject, $tSIZE
        $hWnd = GUICtrlGetHandle($idCtrl)
        $hDC = _WinAPI_GetDC($hWnd)
        $hFont = _SendMessage($hWnd, $WM_GETFONT)
        $hSelectObject = _WinAPI_SelectObject($hDC, $hFont)
        $tSIZE = _WinAPI_GetTextExtentPoint32($hDC, GUICtrlRead($idCtrl))
        ConsoleWrite(StringFormat('Width: %i, Height: %i\r\n', DllStructGetData($tSIZE, 1), DllStructGetData($tSIZE, 2)))
        _WinAPI_SelectObject($hDC, $hSelectObject)
        _WinAPI_ReleaseDC($hWnd, $hDC)
        GUICtrlSetPos($idCtrl, Default, Default, DllStructGetData($tSIZE, 1), DllStructGetData($tSIZE, 2))
    EndFunc
    Alles anzeigen
  • Reguläre Ausdrücke Sammlung

    • Oscar
    • 22. November 2018 um 09:11
    Zitat von BugFix

    Ich finde diese Variante hochinteressant. Vielleicht könnt ihr ja auch was damit anfangen.

    Ja, sehr interessant!

    Das kannte ich auch noch nicht. Danke, für das Beispiel!

  • Forenupdate - November 2018 - Probleme / Anregungen / Feedback - Sammelthread

    • Oscar
    • 19. November 2018 um 18:18

    Beim einfügen von AutoIt-Code fehlt in der Codebox noch die Auswahl "AutoIt" für das SyntaxHighlighting.

  • FileReadLine erkennt Dateiende nicht

    • Oscar
    • 19. November 2018 um 17:58

    Das Macro "@error" wird durch StringLower zurückgesetzt.

    Du musst @error direkt nach FileReadLine auswerten:

    C
    $hFile = FileOpen($ErrorFile)
    Do
        $sString = FileReadLine($hFile)
        If @error Then ExitLoop
        $sString = StringLower($sString)
        ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sString = ' & $sString & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    Until @error
    FileClose($hFile)
  • _DownloadWithProgress

    • Oscar
    • 18. November 2018 um 09:01
    Zitat von Code-Jack

    Und diese funzt nicht:


    Global $sURL = 'https://www.edv-dompteur.de/image/mini/Lichteffekte_500t.jpg'

    Das funktioniert bei mir einwandfrei:

    C
    $sUrl = 'https://www.edv-dompteur.de/image/mini/Lichteffekte_500t.jpg'
    $sFile = InetGet($sUrl, @ScriptDir & '\test.jpg')
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sFile = ' & $sFile & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

    Hast Du eventuell Probleme mit Deiner Internetverbindung?

  • Forenupdate - November 2018 - Probleme / Anregungen / Feedback - Sammelthread

    • Oscar
    • 16. November 2018 um 19:15
    • Moderatoren-Rechte fehlen (keine Bearbeitung möglich, keine Verwarnung, etc.) ERLEDIGT Rechte gesetzt
    • In Beiträgen eingefügte Bilder (z.B. Screenshots werden nicht angezeigt). Ok, bei neuen Beiträgen geht es, aber das hier ist aus einem alten Thread:

    Screenshot.png

    Kann es sein, dass die Bilder nur bis zu einer bestimmten Größe angezeigt werden?

    Weil, das kleine Bild wird angezeigt, aber die beiden größeren nicht. Das ist aus diesem Thread: Digitaluhr v4

  • Mit Uhrzeiten rechnen

    • Oscar
    • 1. November 2018 um 15:41

    Die Date-UDF ist die Lösung:

    AutoIt
    #include <Date.au3>
    
    Global $sToday = _NowCalcDate()
    Global $sBegin = $sToday & ' 08:00:00'
    Global $sEnd = $sToday & ' 17:00:00'
    Global $sPauseBegin = $sToday & ' 12:00:00'
    Global $sPauseEnd = $sToday & ' 13:00:00'
    Global $sDiff1 = _DateDiff('h', $sBegin, $sPauseBegin)
    Global $sDiff2 = _DateDiff('h', $sPauseEnd, $sEnd)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sDiff1 = ' & $sDiff1 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sDiff2 = ' & $sDiff2 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    Alles anzeigen
  • Local, Const oder Static?

    • Oscar
    • 18. Oktober 2018 um 16:19
    Zitat von diepfeile

    Local brauch ich wohl nicht, da alle Variablen automatisch in Funktionen Local sind?

    Das stimmt so nicht!

    Wenn es eine gleichnamige globale Variable gibt, wird diese angesprochen, deshalb lokale Variablen immer auch lokal deklarieren.

    Ansonsten:

    Wenn es sich um Konstanten handelt, diese als "Local const $Var" deklarieren/definieren.

    "Local static" verwendet man, wenn die Variable innerhalb der Funktion auch bei den nächsten Funktionsaufrufen gültig sein soll.

  • Laufwerksnummer auslesen

    • Oscar
    • 18. Oktober 2018 um 10:55
    Zitat von Moombas

    Mit den Drive-Funktionen kam ich da aktuell nicht weiter, jemand eine Idee?

    Schau Dir mal "_WinAPI_GetDriveNumber()" an.

  • iE Embedded - Javascript Fenster ist nicht mit den IE Befehlen erreichbar

    • Oscar
    • 16. Oktober 2018 um 19:54
    Zitat von alpines

    Oscar movest du das hier bitte?

    [verschoben nach H&U]

  • MasterCode

    • Oscar
    • 26. September 2018 um 15:34

    Welche "SciTE4AutoIt"-Version verwendest Du?

    Ich glaube das mit ProductName kam erst mit einer aktuellen Version.

    Zur Not lass die Zeile weg. Hat mit dem Programm an sich eh nichts zu tun.

  • MasterCode

    • Oscar
    • 25. September 2018 um 19:00
    Zitat von Musashi

    Eine kleine Historie, d.h. Anzahl der erfolgreichen/nicht erfolgreichen Spiele, könnte man noch einbauen

    Ja, an eine kleine Statistik habe ich auch schon gedacht. Mal sehen...

    Ansonsten: Danke für die "Blumen"! :)

  • Ich möchte gerne Notepad++ (NPP, Notepad Plus Plus) als Editor verwenden!?

    • Oscar
    • 25. September 2018 um 18:58

    Mit N++ habe ich am Anfang auch mal eine Zeit gearbeitet. Es hat ewig gedauert, bis das halbwegs funktionierte und dann (nach jedem AutoIt-Update) fing das wieder von vorne an.

    Ich hab's irgendwann aufgegeben und benutze seitdem SciTE4AutoIt. Das ist nunmal der "offizielle" Editor und im Grunde reicht der auch 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™