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

Beiträge von AnMa

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 12. September 2013 um 19:53

    So, das nächste Hürdchen :D

    Ich habe gerade eine extra GUI für die Optionen (Eigenschaften) zum Bprogramm erstellt. In dem sollen der Pfad für die fertige Audiodaei, die gewünschte Normalisierung und auch die Zugangsdaten eingegeben und gespeichert werdenkönnen.

    Die Daten sollen dann in die vorhandene "config.ini" gespeichert werden. Aber ich bekomme eine Error-Meldung und weiß nicht warum.

    In der "options.au3" schreibe ichmittels eines "SAVE"-Butons ind die config

    [autoit]

    Case $sSave
    IniWrite($scriptpath & "data\config.ini", "Options", "$audiopath=" & '"'$audiopath'"')

    [/autoit]

    Bekomme dann aber in der "config.ini" die folgende Fehlermeldung:

    [autoit]

    [Options]
    $ftp_server="ftpserver.com"
    ERROR: synthax error <<<<---------------------------- Diese Meldung
    $zugang = "zugang.ini"
    $ftp_user="anna"
    $ftp_passwd="0815"
    $audiopath="C:"
    $db = "0"

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

    [Audios}
    $news = "Nachrichten.mp3"
    $newsopener = "R4P_News_Opener.mp3"
    $newscloser = "R4P_News_Closer.mp3"

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

    [Basics]
    $scriptpath = "D:\Program"

    [/autoit]
  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 12. September 2013 um 17:07

    Juppie :)

    Wieder einen Schritt weiter und einen Teil gelöst :D

    [autoit]

    #Region ### NORMALISIEREN ###
    ShellExecuteWait($scriptpath & 'subs\mp3gain.exe','/c /r /m ' & $db & ' /q "' & $scriptpath & 'temp\' & $news & '"', "", "", @SW_HIDE)
    ShellExecuteWait($scriptpath & 'subs\mp3gain.exe','/c /r /m ' & $db & ' /q "' & $scriptpath & 'temp\' & $newsopener & '"', "", "", @SW_HIDE)
    ShellExecuteWait($scriptpath & 'subs\mp3gain.exe','/c /r /m ' & $db & ' /q "' & $scriptpath & 'temp\' & $newscloser & '"', "", "", @SW_HIDE)
    #EndRegion ### NORMALISIEREN ###

    [/autoit]


    Auf zum nächsten .... ;)

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 12. September 2013 um 15:00

    Gibt es eine Möglichkeit den Befehlen für die CMD eine "Pause" mit auf den Weg zu geben?

    Ich sehe zwar, dass die cmd aufgerufen wird, aber sie ist so schnell wieder weg, dass ich nicht sehe was passiert.

  • PNG-Image in einer GUI darstellen

    • AnMa
    • 12. September 2013 um 13:36

    Cool .. ich kapier was ich tu ... :D

    Danke vielmals :)

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 12. September 2013 um 13:35

    Super Danke .. :)

    Da komm ich schon mal weiter ... dachte ich :D

    Ich habe mal eine grundlegende Frage:
    Am Ende bleibe ich immer wieder an den selben Stellen hängen. Ich habe zum Beispiel aus der Hilfe das folgende ...
    RunWait(@ComSpec & " /c " & "commandName") 
    Aus der mp3gain-Referenz habe ich die folgende Kommandozeile erstellt.
    mp3gain /r /m 3 /q "D:\Programm\temp\Nachrichten.mp3"

    Wo ich aber zum wiederholten male hängen bleibe ist die Zusammenführung beider Elemente.

    Nachdem was ich bis jetzt verstanden habe müßte die Zeile wie folgt aussehen?

    [autoit]

    RunWait(@ComSpec & " /r /m 3 /q " & "mp3gain.exe")

    [/autoit]


    Vermutlich ist dieser Ansatz schon gänzlich falsch, denn spätestens beim Aufrufen der Datei "D:\Programm\temp\Nachrichten.mp3" bin ich am ende.

  • PNG-Image in einer GUI darstellen

    • AnMa
    • 12. September 2013 um 12:33

    Ok, das funktioniert :D

    Aber ich verstehe noch nicht warum, da muß ich mir noch mal die Auswirkungen den Veränderungen anschauen. Wenn ich das richtig sehe gab es ja drei Änderungen?

    Löschen von:
    GUISetState()
    und
    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    Versetzen von:
    ; Ressourcen aufräumen
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

    Jetzt ist gaub ich der Groschen gefallen :D

    "GUISetState()" hatte ich eh zweimal drin.
    Die Schleife "Do - Until" hat über die Func ein erstes GUI erzeugt
    Und der "GDIPlus_Dhutdown()" kam bevor das Form aufgebaut wurde.

    Waren das die Gründe?

  • PNG-Image in einer GUI darstellen

    • AnMa
    • 12. September 2013 um 12:01

    hmm .... OK, die eine Anpassung von "$hGUI" nach "$Main" hatte ich übersehen.

    Aber wüßte ich nicht was ich in der Func "MY_WM_PAINT" anpassen soll. :(

    Wenn ich das Script starte bekomme ich nacheinander zwei GUI's angezeigt.

    Das erste zeigt einzig und alleine das "hintergund-Image" an. Kein Menu, keine Label, kein Button ... nichts.

    Nach der "ESC"

    Kommt das selbe GUI nocheinmal,aber diesmal mit allem was dazu gehört, jedoch kein PNG-Image. :(

    Ich komm nicht drauf wo ich den Denkfehler habe. Alleine, dass das GUI zweimal aufgerufen wird ist ja schon nicht normal.

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 12. September 2013 um 11:53

    Das hört sich doch schon mal sehr gut an. :)

    Es reicht ja, soweit ich weiß, wenn ich die "mp3gain.exe" aus der original Instalation in mein Arbeitsverzeichnis kopiere?

    Ich finde nur nirgendwo die Referenz über die Komandos. *grummls*

  • PNG-Image in einer GUI darstellen

    • AnMa
    • 12. September 2013 um 11:41

    Mit dem Beispiel habe ich schon die ganzen Stunden gearbeitet und versucht es einzupassen. :(

    Aber mehr als das bekomm ich nicht Zustande:

    Spoiler anzeigen
    [autoit]

    #Region ### INCLUDES ###
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #Include <WinAPI.au3>
    #include <GroupEx[0.5].au3>
    #include <data\Winamp_Library.au3>
    #include <data\config.ini>
    #EndRegion ### INCLUDES ###

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

    #Region ### GUI FORM ###
    $Main = GUICreate("Downloader", 786, 521, 216, 125)
    GUISetState()

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

    $Pic = GUICtrlCreatePic(@ScriptDir & "\images\BeCast_Hintergrund.jpg", 0, 0, 786, 501)

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

    Global $hGUI, $hImage, $hGraphic, $hImage1

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

    ; PNG Bild laden
    _GDIPlus_Startup()
    $hImage = _GDIPlus_ImageLoadFromFile("images\winamp.png")
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($Main)

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

    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
    GUISetState()

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

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    ; Ressourcen aufräumen
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

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

    _GUICtrlCreateLabelTrans ("Download auswählen:", 75, 48, 178, 24)
    GUICtrlSetFont(-1, 12, 800, 4, "Arial Black")

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

    $Group1 = _GUICtrlGroup_Create("Nachrichten:", 15, 80, 185, 120)
    _GuiCtrlGroup_Set($Main, $Group1, $GUI_BKCOLOR_TRANSPARENT, $_GROUPBACKGROUND)
    $Button1 = GUICtrlCreateButton("Aktualisieren", 111, 168, 83, 25)
    _GUICtrlCreateLabelTrans("Montag - Freitag:", 25, 100, 101, 17)
    _GUICtrlCreateLabelTrans("06:00 Uhr / 09:00 Uhr / 12:00 Uhr", 25, 130, 167, 17)
    _GUICtrlCreateLabelTrans("jeweils ab ca. 10 Min vor", 25, 115, 121, 17)
    _GUICtrlCreateLabelTrans("16:00 Uhr / 20:00 Uhr / 24:00 Uhr", 25, 145, 167, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### GUI FORM ###

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

    #Region ### MENU ###
    $filemenu = GUICtrlCreateMenu("Datei")
    $optmenu = GUICtrlCreateMenu("Optionen")
    $helpmenu = GUICtrlCreateMenu("?")

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

    $exititem = GUICtrlCreateMenuItem("Beenden", $filemenu)
    $connectitem = GUICtrlCreateMenuItem("Verbindung testen", $optmenu)
    $trenneritem1 = GUICtrlCreateMenuItem("", $optmenu)
    $stateitem = GUICtrlCreateMenuItem("Statusanzeige", $optmenu)
    $einstitem = GUICtrlCreateMenuItem("Einstellungen", $optmenu)
    $helpitem = GUICtrlCreateMenuItem("Hilfe", $helpmenu)
    $aboutitem = GUICtrlCreateMenuItem("Info", $helpmenu)
    #EndRegion ### MENU ###

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

    #Region ### WORKAROUND ###
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $exititem, $GUI_EVENT_CLOSE
    Exit
    Case $einstitem
    Run("subs\options.exe", $scriptpath & "subs", @SW_MAXIMIZE)
    EndSwitch
    WEnd
    #EndRegion ### WORKAROUND ###

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

    Exit

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

    #Region ### FUNCTIONS ###
    Func _GuiCtrlCreateLabelTrans($_text, $_left, $_top, $_width=Default, $_height=Default, $_style=-1, $_exStyle=0, $_iForeCol=-1)
    Local $ID = GUICtrlCreateLabel($_text, $_left, $_top, $_width, $_height, $_style, $_exStyle)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    If $_iForeCol <> -1 Then GUICtrlSetColor(-1, $_iForeCol)
    Return $ID
    EndFunc

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

    ; PNG Bild zeichnen
    Func MY_WM_PAINT($hWnd, $msg, $wParam, $lParam)
    #forceref $hWnd, $Msg, $wParam, $lParam
    _WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
    _WinAPI_RedrawWindow($Main, 0, 0, $RDW_VALIDATE)
    Return $GUI_RUNDEFMSG
    EndFunc ;==>MY_WM_PAINT
    #EndRegion ### FUNCTIONS ###

    [/autoit]
  • PNG-Image in einer GUI darstellen

    • AnMa
    • 12. September 2013 um 04:25

    Ich weiß, da Thema gabs schon einigemale, aber nach knapp 5 Stunden bekomm ich jetzt langsam Pipi in die Augen.

    In meiner GUI möchte ich gerne eine PNG-Grafik anzeigen lassen, aber obwohl das Test.au3 funktioniert, verzweifle ich an der eigentlichen GUI.

    Hier die Test-Variante:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #Include <WinAPI.au3>

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

    $hGUI999 = GUICreate("Show PNG", 250, 250)
    GUISetState()

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

    _drawpng($hGUI999, "images\winamp001.png", 0, 0)

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

    ; Loop until user exits
    do
    until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    Func _drawpng($pnggui,$pngpic, $pngx, $pngy)
    Local $hImage999, $hGraphic999, $hImage999

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

    ; Load PNG image
    _GDIPlus_StartUp()
    $hImage999 = _GDIPlus_ImageLoadFromFile($pngpic)
    $hGraphic999 = _GDIPlus_GraphicsCreateFromHWND($pnggui)

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

    ; Draw PNG image
    ; _WinAPI_RedrawWindow($pnggui, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($hGraphic999, $hImage999, $pngx, $pngy)
    ; _WinAPI_RedrawWindow($pnggui, 0, 0, $RDW_VALIDATE)

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

    ; Clean up resources
    _GDIPlus_GraphicsDispose($hGraphic999)
    _GDIPlus_ImageDispose($hImage999)
    _GDIPlus_ShutDown()
    EndFunc

    [/autoit]

    Aber wie ich es auch drehe und wende, in meiner eigentlichen GUI schaffe ich es nciht die PNG-Grafik anzeigen zulassen.

    Bevor ich jetzt hier mein ganzes Script reinstelle, möchte ich einfach mal die Frage stelen, was denn die Basic für die Darstelung eines PNG-Images in einer GUI sind.

    Wenn ich richtig liege, sollten doch folgende Punkte zum Erfolg führen?

    Die Includes:
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #Include <WinAPI.au3>

    Erstellen der GUI:
    $Irgendwas = GUICreate("Irgendwas", Breite, Höhe)
    GUISetState()

    Starten der DPIPlus.au3:
    _GDIPlus_StartUp()

    Laden des PNG-Images:
    $hImage999 = _GDIPlus_ImageLoadFromFile("images\beispiel.png")

    Anzeigen des PNG-Images:
    _GDIPlus_GraphicsDrawImage($hGUI999, $hImage999, 0, 0)

    GDIPlus, abschalten:
    _GDIPlus_ShutDown()

    Eine Schleife die die GUI am Leben hält:
    zum Beispiel:
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

  • Bass.dll UDF Version_10 Download

    • AnMa
    • 12. September 2013 um 00:10

    Hi,

    bevor ich mich hier in etwas verrenne, wären folgende Optionen mit der Bass UDF gegeben?

    - Auslesen und normalisieren von Audiofiles
    - Zusammenführen von Audiofiles (evtl Crossfading oder zumindest Stille am Anfang oder Ende schneiden)
    - mit neuem ID3 Tag versehen

    Gruß
    Anna

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 11. September 2013 um 22:45

    Klasse ... Es geht voran :)

    Damit kann ich mich jetzt der Normalisierung der Audiodaten widmen.

    Geh ich recht in der Annahme, dass ich dazu ein Programm wie MP3Gain integrieren kann?

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 11. September 2013 um 22:37

    Oh Mann .... ich bekomme bald ne Glatze ... *aufshirnklatsch*

    Groschen gefallen ....

    Die Funktion wird in der If-Abfrage zweimal aufgerufen, einmal ohne Parameter und anschließend ein zweitesmal mit den von mir vorgegebenen Parametern (5, 50) und diese werden dann mit einander verglichen?

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 11. September 2013 um 22:26

    Naja, wenn Du sagst das wäre gefährlich, dass lass ich ja lieber die Finger von meiner Lösung. :)


    Deinen Vorschlag habe ich jetzt erst gesehen ja, aber ich versteh ihn nicht. :(

    In der ersten Zeile rufe ich nach dem "IF" die Funktion "_" auf und gebe ihr keinen Wert mit "()" ... Richtig?

    In der Funktion werden die Stunden dann mal 60 genommen und die Minuten hinzuaddiert (Bsp: 12:16 Uhr = 12*60+16 = 736), also wird der 736 zurück gegeben.

    Was aber dann passiert entzieht sich mir komplett :( _(5, 50) <-- ??

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 11. September 2013 um 22:07

    :( Nu dachte ich, ich hätte ne Lösung :(

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 11. September 2013 um 22:02

    Ein Blick in die Vergangenheit hat mir die einfache Lösung gebracht :)

    [autoit]

    $aktUhrzeit = (@HOUR & @MIN)

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

    If ($aktUhrzeit < 0550) Then
    If MsgBox(16, "Keine Nachrichten", "Nachrichten erst ab" & @CRLF & "05:50 Uhr") = 1 Then Exit
    ElseIf ($aktUhrzeit < 0850) Then
    $sStd = "06"
    ElseIf ($aktUhrzeit < 1150) Then
    $sStd = "09"
    ElseIf ($aktUhrzeit < 1550) Then
    $sStd = "12"
    ElseIf ($aktUhrzeit < 1950) Then
    $sStd = "16"
    ElseIf ($aktUhrzeit < 2350) Then
    $sStd = "20"
    EndIf

    [/autoit]

    Die Zeit nach 23:50 uhr ist absichtlich noch offen ....

    Aber so bekomme ich im ensprechenden Zeitfenster von zum Beispiel 05:50 uhr bis 08:50 Uhr die ensprechende Variable (in dem Fall: "06")

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 11. September 2013 um 21:40

    Ja genau .. das ist mir vorhin auch aufgefallen .. aber dann muß ich das ja für jede Stunde und die wechsel-Stunden zweimal schreiben. :(


    In CMD hatte ich das wie folgt gelöst.

    Code
    : timestamp rem
    set CURRENTTIME=%TIME::=%
    set CURRENTTIME=%CURRENTTIME:~0,-3%
    echo Aktuelle Uhrzeit: %CURRENTTIME%
    if %CURRENTTIME% LSS 55000 goto nofile
    if %CURRENTTIME% GEQ 55000 set hour=06
    if %CURRENTTIME% GEQ 85000 set hour=09
    if %CURRENTTIME% GEQ 115000 set hour=12
    if %CURRENTTIME% GEQ 155000 set hour=16
    if %CURRENTTIME% GEQ 195000 set hour=20
    goto download
    Alles anzeigen

    Etwas ähnliches gibt es in Autoit nicht oder?

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 11. September 2013 um 21:10

    Die Prograssbar muß jetzt erstmal warten bis ich die anderen Bauteile des Scripts fertig habe, sonst kann ich das immer wieder anpassen :)

    Wie schon in der SB angesprochen kümmere ich mich derzeit um das Zeitmanagement. Also Abfrage der Wochentage, Stunden und Minuten um entsprechende Downloads zu veranlassen.

    Die Wochentage konne ich noch recht gut lösen:

    [autoit]

    If $sShortDayName = "Sam" or $sShortDayName = "Son" Then
    If MsgBox(16, "Keine Nachrichten", "Heute ist " & $sLongDayName & @CRLF & @CRLF & "Es gibt am Wochenende" & @CRLF & "keine Nachrichten!" & @CRLF & @CRLF & "Bitte Wochenrückblick nutzen!") = 1 Then Exit
    EndIf

    [/autoit]

    Bei der Zeitberechnung wirds wohl etwas schwieriger .. Irgendwo habe ich hier noch einen Denkfehler, da die bedingte Anweisung noch nciht zur entsprechenden Zeit die Variable anpasst.

    [autoit]

    If (@HOUR < 6) AND (@MIN < 50) Then
    MsgBox(0, "Keine Nachrichten", "Nachrichten erst ab" & @CRLF & "05:50 Uhr")
    ElseIf (@HOUR <9) AND (@MIN < 50) Then
    $sStd = 06
    ElseIf (@HOUR <12) AND (@MIN < 50) Then
    $sStd = 09
    ElseIf (@HOUR <16) AND (@MIN < 50) Then
    $sStd = 12
    ElseIf (@HOUR <20) AND (@MIN < 50) Then
    $sStd = 16
    ElseIf (@HOUR <24) AND (@MIN < 50) Then
    $sStd = 20
    EndIf

    [/autoit]

    EDIT:
    OK, gleich zwei Denkfehler habe ich gefunden.
    Zum einen müßendie Stunden um 1 reduziert werden, das ist ja kein Thema.
    Zum anderen werdenja die Zeiten über 50 Minuten komplett ausgeklammert :( Da muß ich wohl ganz anders vorgehen ...

  • GroupEx.au3 -- User Group Control, vielseitig modifizierbar

    • AnMa
    • 10. September 2013 um 19:15

    Wie gemein :)

    Warum komm ich nicht auf sowas?


    Danke vielmals :)

  • GroupEx.au3 -- User Group Control, vielseitig modifizierbar

    • AnMa
    • 10. September 2013 um 18:52

    Bin ich jetzt echt so blind oder gibt es keine Möglichkeit den Hintergrund der Group transparent zu schalten?

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™