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

Beiträge von autoBert

  • Fehler bei nicht deklarierten Variablen

    • autoBert
    • 16. Februar 2010 um 07:44

    Hallo chip,

    [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit]

    mfg (Auto)Bert

  • Brauche Hilfe bei meinem ersten Projekt

    • autoBert
    • 16. Februar 2010 um 07:36

    Hallo Goldy,

    hier das geänderte Skript:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.4.0
    Author: Goldy

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

    Script Function:
    Calculator.

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

    #ce ----------------------------------------------------------------------------

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

    ;============================
    ;======Beispiel - Goldy======
    ;============================
    ;$zahl1 = InputBox ("Zahl1","Hier bitte die erste Zahl eingeben")
    ;$zahl2 = InputBox ("Zahl2","Geben sie nun hier die zweite Zahl ein")
    ;$zahl3 = $zahl1 - $zahl2
    ;MsgBox (0,"Ergebnis",$zahl3)
    ;=============================
    ;=============================

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

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Calculator", 292, 139, 862, 127)
    $Button1 = GUICtrlCreateButton("Addition", 8, 8, 81, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Subtraktion", 104, 8, 97, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Multiplikation", 8, 40, 81, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("Division", 104, 40, 97, 25, $WS_GROUP)
    $Button5 = GUICtrlCreateButton("Satz des Pythagoras", 8, 72, 193, 25, $WS_GROUP)
    $Button6 = GUICtrlCreateButton("Prozentrechnung", 8, 104, 193, 25, $WS_GROUP)

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

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button1
    $zahl1 = InputBox ("Zahl1","Hier bitte die erste Zahl eingeben")
    $zahl2 = InputBox ("Zahl2","Geben sie nun hier die zweite Zahl ein")
    $zahl3 = $zahl1 + $zahl2
    MsgBox (0,"Ergebnis",$zahl3)
    Case $Button2
    $zahl1 = InputBox ("Zahl1","Hier bitte die erste Zahl eingeben")
    $zahl2 = InputBox ("Zahl2","Geben sie nun hier die zweite Zahl ein")
    $zahl3 = $zahl1 - $zahl2
    MsgBox (0,"Ergebnis",$zahl3)
    Case $Button3
    $zahl1 = InputBox ("Zahl1","Hier bitte die erste Zahl eingeben")
    $zahl2 = InputBox ("Zahl2","Geben sie nun hier die zweite Zahl ein")
    $zahl3 = $zahl1 * $zahl2
    MsgBox (0,"Ergebnis",$zahl3)
    Case $Button4
    $zahl1 = InputBox ("Zahl1","Hier bitte die erste Zahl eingeben")
    $zahl2 = InputBox ("Zahl2","Geben sie nun hier die zweite Zahl ein")
    $zahl3 = $zahl1 / $zahl2
    MsgBox (0,"Ergebnis",$zahl3)
    Case $Button5
    $zahl1 = InputBox ("Zahl1","Hier bitte die erste Zahl eingeben")
    $zahl2 = InputBox ("Zahl2","Geben sie nun hier die zweite Zahl ein")
    $zahl3 = $zahl1*$zahl1 + $zahl2*$zahl2
    MsgBox (0,"Ergebnis",$zahl3)
    Case $Button6
    _ProzentRechnen()
    EndSwitch
    WEnd

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

    Func _ProzentRechnen()
    #Region ### START Koda GUI section ### Form=E:\Programme\AutoIt3\SciTE\Koda\Forms\Prozentrechnung.kxf
    $Form2 = GUICreate("Prozentrechngung", 496, 82, 390, 243)
    $Button7 = GUICtrlCreateButton("Grundwert (G)", 8, 8, 145, 25, $WS_GROUP)
    $Button8 = GUICtrlCreateButton("Prozentwert (W)", 168, 8, 145, 25, $WS_GROUP)
    $Button9 = GUICtrlCreateButton("Prozentsatz (p)", 328, 8, 145, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $Button7
    $zahl1 = InputBox ("Zahl1","Hier bitte den Grundwert eingeben")
    $zahl2 = InputBox ("Zahl2","Geben sie nun hier den Prozentsatz ein")
    $zahl3 = $zahl1 * $zahl2
    $zahl4 = $zahl3 / 100
    MsgBox (0,"Ergebnis",$zahl4)
    EndSwitch
    WEnd
    GUIDelete($Form2)
    EndFunc

    [/autoit]

    viel Spass damit,

    mfg (Auto)Bert

  • Brauche Hilfe bei meinem ersten Projekt

    • autoBert
    • 16. Februar 2010 um 07:05

    Hallo Goldy,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Am besten postest du dein komplettes Skript in einer lesbaren Form (Zeilenumbrüche fehlen), notfalls hängst du es als Dateianhang an, falls du es mit der Formatierung nicht hinbekommst,

    mfg (Auto)Bert

  • Bräuchte Anleitungen.

    • autoBert
    • 16. Februar 2010 um 06:59

    Hallo DaisukeHideki,

    herzlich willkommen im Forum und viel Spass mit AutoIt.
    Am besten fängst du mit den Tutorials aus der Hilfe arbeitest dich von da bis zur Gui-Referenz durch. Hilfreich kann auch das [ gelöst ] Buch von peethebee und das Online-Tutorial sein.

    mfg (Auto)Bert

  • Quick Launch (Schnellstartleiste) unter Windows 7 berechnen vom TFT bzw. Monitor wie Groß die auflösung ist. !

    • autoBert
    • 15. Februar 2010 um 21:03

    Hallo Baron1977,

    entscheidend in dem Skript sind Zeilen 7:

    [autoit]

    MouseClick("right", $pos[2] - 10, @DesktopHeight - 5)

    [/autoit]


    und Zeile 21

    [autoit]

    MouseClick("left", $pos[0] - 3, @DesktopHeight - 5, 2)

    [/autoit]


    da mit ControlGetPos zuvor die Größe und Position ermittelt wird, sind Abweichungen bei deinem System für alle angeschlossenen Monitore und Auflösungen gleich. Du kannst ja die Werte mit denen $pos[0] bzw. $pos[2] korrigiert wird anpassen eventuell musst du in Zeile 7 die Breite also @DeskTopWidth mit in der Formel verechnen.

    mfg (Auto)Bert

  • # Problem

    • autoBert
    • 15. Februar 2010 um 20:45

    Hallo Cartan12,

    Zitat

    >>>>aus der Hilfe zu Send<<<<
    Die "Send" Befehlssyntax ist ähnlich dem von ScriptIt und Visual Basic verwendetem "SendKeys"-Befehl. Die Zeichen werden wie geschrieben gesendet, mit Ausnahme der folgenden Zeichen:
    ...
    '#'
    Die Hash (Raute oder Doppelkreuz)-Taste simuliert das Drücken der Windows-Taste. Folglich würde Send("#r") Win+r senden und damit die Run Dialogbox (Ausführen-Dialog) aufrufen.
    ....


    mfg (autoBert

  • Gui Flash und Bild

    • autoBert
    • 15. Februar 2010 um 19:56

    Hallo Kev,

    anscheinend nicht. Innerhalb von noch nicht einmal 6 Stunden seinen Beitrag (und das auch noch 2 X) zu pushen wird hier grundsätzlich ignoriert,

    mfg (Auto)Bert

  • wie beende ich einen gui während eines laufenden prozesses

    • autoBert
    • 15. Februar 2010 um 19:33

    Hallo pretrojaner,

    [autoit]

    Zeile 5
    GuiSetOnEvent($GUI_EVENT_CLOSE,"_Abbrechen"
    alte Zeile 6

    [/autoit]

    #

    mfg (Auto)Bert

  • TrayTip verschieben

    • autoBert
    • 15. Februar 2010 um 19:09

    Hallo Jakolo,

    du kannst doch ToolTip anstelle von Tra<yTip in deinen Skripten verwenden,

    mfg (Auto)Bert

  • Programm durchsuchen und Text auslesen

    • autoBert
    • 15. Februar 2010 um 19:04

    Hallo schw3ndi,

    wäre es nicht das einfachste einfach den Entwickler zu fragen, ob er nicht eine Exportfunktion einbauen kann. Bzw. sich mit ihm zusammen zu überlegen, wie man das Verwaltungsprogramm eures Vereines weiter verbessern könnte,

    mfg >(Auto)Bert

  • Quick Launch (Schnellstartleiste) unter Windows 7 berechnen vom TFT bzw. Monitor wie Groß die auflösung ist. !

    • autoBert
    • 15. Februar 2010 um 18:48

    Hallo Baron1977,

    das Tool ist doch auflösungsunabhängig geskriptet (bei beiden Mouseclicks wird die aktuelle Höhe des Monitors und die Position des Tray's berücksichtigt). Es muss daher auf allen Monitoren laufen, vorausgestzt die Leiste ist am unteren Bildschirmrand,

    mfg (Auto)Bert

  • Run Problem

    • autoBert
    • 15. Februar 2010 um 18:37

    Hallo bizzi,

    Zitat

    Run
    --------------------------------------------------------------------------------

    Startet ein externes Programm.


    Run ( "program" [, "workingdir" [, show_flag[, opt_flag ]]] )


    Parameter

    program Der komplette Pfad des Programms (.EXE, .BAT, .COM oder .PIF), die ausgeführt werden soll. (siehe Bemerkungen)
    workingdir [optional] Der Pfad, in dem das Programm ausgeführt werden soll (Arbeitsverzeichnis). Dies ist nicht der Pfad des Programms.
    show_flag [optional] Das "show"- (Sichtbarkeits-) Flag des auszuführenden Programms:
    @SW_HIDE = verstecktes Fenster (alternative Eingabe: default).
    @SW_MINIMIZE = minimiertes Fenster.
    @SW_MAXIMIZE = maximiertes Fenster.

    Alles anzeigen

    also so zum Beispiel

    [autoit]

    run("PROGRAMMinklusivPFAD","ARBEITSVERZEICHNIS")

    [/autoit]

    wobei das Arbeitsverzeichnis bei dir das Verzeichnis ist, wo sich die INI befindet,

    mfg (Auto)Bert

  • gui über func aufrufen verschwindet direkt

    • autoBert
    • 15. Februar 2010 um 18:26

    Hallo

    Zitat von Cartan12

    Ah ja, wie BugFix gesagt hat

    kann keinen Post von BugFix zu diesem Thema finden,

    mfg (Auto)Bert

  • Inhalt aller Fenster auslesen (IE,FF,Notepad)

    • autoBert
    • 15. Februar 2010 um 18:21

    Hallo freaky,

    im IE kannst du mit

    Zitat

    _IEDocReadHTML
    --------------------------------------------------------------------------------

    Gibt den kompletten HTML-Quelltext eines Dokuments zurück

    arbeiten. _InetGetSource ist bei bekannter URL auch eine Möglichkeit,

    mfg (Auto)Bert

  • Run Problem

    • autoBert
    • 15. Februar 2010 um 18:15

    Hallo bizzi,

    benutze doch einfach den Parameter WORKINGDIR des run-Befehls,

    mfg (Auto)Bert

  • gui über func aufrufen verschwindet direkt

    • autoBert
    • 15. Februar 2010 um 18:11

    Hallo Bulli,

    hier mal meine Version:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1) ;ONEvent Mode.

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

    Dim $Input1, $Input2, $Input3, $Input4, $Input5, $Input6, $GUI, $Label1, $Label2, $Label3, $Label4, $Label5, $Label6

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

    _Main()

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

    Func _Main()
    $GUI = GUICreate("test", 266, 382, 189, 123)
    $Input1 = GUICtrlCreateInput("", 128, 40, 121, 21)
    $Input2 = GUICtrlCreateInput("", 128, 88, 121, 21)
    $Input3 = GUICtrlCreateInput("", 128, 136, 121, 21)
    $Input4 = GUICtrlCreateInput("", 128, 184, 121, 21)
    $Input5 = GUICtrlCreateInput("", 128, 232, 121, 21)
    $Input6 = GUICtrlCreateInput("", 128, 280, 121, 21)
    $Start = GUICtrlCreateButton("Start", 88, 336, 75, 25)
    GUICtrlSetOnEvent($Start, "_Start")
    $Label1 = GUICtrlCreateLabel("Input1", 24, 40, 34, 17)
    $Label2 = GUICtrlCreateLabel("Input2", 24, 88, 34, 17)
    $Label3 = GUICtrlCreateLabel("Input3", 24, 136, 34, 17)
    $Label4 = GUICtrlCreateLabel("Input4", 24, 184, 34, 17)
    $Label5 = GUICtrlCreateLabel("Input5", 24, 232, 34, 17)
    $Label6 = GUICtrlCreateLabel("Input6", 24, 280, 34, 17)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit')
    GUISetState(@SW_SHOW)
    While 1
    Sleep(1000)
    WEnd

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

    EndFunc ;==>_Main

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

    Func _Exit()
    Exit
    EndFunc ;==>_Exit

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

    Func _Start()
    Local $onEvent = Opt("GUIOnEventMode", 0) ;ONEvent Mode ausschalten und in Variable Zustand speichern
    ;GUIDelete()

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

    $Form1 = GUICreate("ausgabe", 267, 217, 192, 124)
    $Eingaben = GUICtrlRead($Input1) & @CRLF & GUICtrlRead($Input2) & @CRLF & GUICtrlRead($Input3) & @CRLF & GUICtrlRead($Input4) & @CRLF & GUICtrlRead($Input5) & @CRLF & GUICtrlRead($Input6)
    $Edit1 = GUICtrlCreateEdit($Eingaben, 24, 14, 201, 169)
    $hClose = GUICtrlCreateButton("Schliessen", 24, 190, 201, 25)
    ;GUICtrlSetData(-1, $Eingaben)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $hClose
    ExitLoop

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

    EndSwitch
    WEnd
    GUIDelete($Form1)
    Opt("GUIOnEventMode", $onEvent) ;ONEvent Mode wiederherstellen
    EndFunc ;==>_Start

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

    Exit

    [/autoit]

    da du für die 1. Gui den OnEvent-Modus nehmen wolltest (siehe GuiCtrlSetOnEvent) und für die 2. den MessageLoop-Modus (siehe GuiGetMsg) musst du auch den OnEventModus dementsprechend umschalten. Die Ausgabe im Edit-Feld habe ich auch angepasst (Vorher erschien immer nur Edit1. Üblicherweise skriptet man entweder im OnEvent-Modus oder im MessageLoop-Modus. Es ist aber durhaus möglich beide in einem Skript zu verwenden, im besonderen kommt es öfters bei kleineren Tool-Windows die man universel einbinden will (und deshalb in eine UDF auslagert) praktiziert.
    Das gemeinste an deinem Skript war allerdings, die Deklaration von $GUI_EVENT_CLOSE am Ende der Zeile (so dass ich es übersehen hatte),

    mfg (Auto)Bert

  • Erste UDF

    • autoBert
    • 15. Februar 2010 um 04:23

    Hallo chip,

    http://www.autoitscript.com/autoit3/udfs/UDF_Standards.htm

    mfg (Auto)Bert

  • GUIGetMsg Problem - Nicht auf Eingabe warten / Abbrechen Knopf

    • autoBert
    • 15. Februar 2010 um 03:59

    Hallo MMM,

    wenn du dir den anderen Thread genau gelesen hättest, wüsstest du dass ohne komplettes Skript eine echte Hilfe nicht möglich ist. Das einzige was sich seitdem entscheidend geändert hat, du kannst jetzt mehrere Adlib's verwenden siehe dazu die Hilfe von AdlibRegister und AdlibUnregister. IsPressed könnte auch noch nützlich sein.
    Egal ob du im GuiGetMsg- oder OnEventModus skriptest, während die func läuft werden die Ereignisse zwar ausgelöst, aber erst nach Beendigung der func abgearbeitet.

    mfg (Auto)Bert

  • script funktioniert nicht mehr

    • autoBert
    • 14. Februar 2010 um 14:27

    Hallo JuraX,

    sorry, habe leider vergessen die Zeile 83 zu löschen (ist bei mir nötig da ansonsten _GetFilesFolder_Rekursiv mit folgender Fehlermeldung austeigt, da keine INI:

    Code
    C:\Programme\AutoIt3\Downloads\JuraX\_GetFilesFolder_Rekursiv.au3 (34) : ==> The requested action with this object has failed.:
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    _ShowSubFolders($oFSO.GetFolder($sPath)^ ERROR

    mfg (Auto)Bert

  • script funktioniert nicht mehr

    • autoBert
    • 14. Februar 2010 um 14:14

    Hallo JuarX,

    versuch es einmal so:

    Spoiler anzeigen
    [autoit]

    #include <Bass.au3>
    #include <GuiListView.au3>
    #include <GDIPlus.au3>
    #include <Misc.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <BassConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StructureConstants.au3>
    #include <_GetFilesFolder_Rekursiv.au3>
    #NoTrayIcon
    ;===================================================================================================
    ; INRadio-Localtuner by JuraX
    ;===================================================================================================
    Global Const $WM_DROPFILESplay = 0x0233
    Global Const $WM_DROPFILES = 0x0233
    Global $gaDropFiles[1]
    Global $aItem[2]
    Global $playing_state = -1
    Global $MusicHandle
    Global $ARRPLAY, $titelnummer = 0
    Global $progress_slider, $slots, $hwnd
    Global $fftstruct = DllStructCreate("float[128]")

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

    #Region StartUp

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

    #Region OPT
    Opt("TrayMenuMode", 1)
    Opt("MouseCoordMode", 0)
    #EndRegion OPT

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

    #Region Tray
    $uottray = TrayCreateItem("Anzeigen")
    $totray = TrayCreateItem("Verstecken")
    $deleate = TrayCreateItem("Schließen")
    TraySetState()
    #EndRegion Tray

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

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Res_Field=INR|Jurax-Multimedia
    #AutoIt3Wrapper_Res_Field=ProductVersion|1.3
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    ;Bass StartUp
    _BASS_STARTUP(@ScriptDir & "\BASS.dll")
    _BASS_Init(0, -1, 44100, 0, "")

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

    If @error Then
    MsgBox(0, "Error", "Sound konnte nicht Initialisiert werden!")
    Exit
    EndIf

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

    #Region Register
    AdlibRegister("Aktualisieren", 100)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    #EndRegion Register

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

    #EndRegion StartUp

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

    #Region GUI
    $width = 380
    $height = 650
    $hwnd = GUICreate("INRadio-Localtuner", $width, $height, -1, -1, Default, $WS_EX_ACCEPTFILES)
    $Close = GUICtrlCreateButton("Close", 296, 160, 75, 25, 0)
    $Play = GUICtrlCreateButton("Play", 216, 160, 75, 25, 0)
    $Stop = GUICtrlCreateButton("Stop", 136, 160, 75, 25, 0)
    $newfile = GUICtrlCreateButton("Andere Datei", 36, 160, 75, 25, 0)
    $progress_slider = GUICtrlCreateProgress(8, 32, 236, 20)
    $slots = GUICtrlCreateLabel(GUICtrlRead($progress_slider), 8, 8, 150, 17)
    $ordner = GUICtrlCreateButton("Neue Bibliothek", 136, 330)
    GUICtrlCreateLabel("Lautstärke", 8, 190, 80, 20)
    $Volume_slider = GUICtrlCreateSlider(8, 250, 366, 80)
    $hListView = GUICtrlCreateListView('Dateiname|Pfad', 10, 375, 350, 200)
    $Playliste = GUICtrlCreateButton("Playliste abspielen", 20, 330)

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

    #Region BIB Füllen
    $return = IniRead(@ScriptDir & "\INRadio.ini", "Load", "BIB", "")
    If $return = "" Then
    $return = 'C:\Users\' & @UserName & '\Desktop'
    EndIf
    $return = "C:\Programme\AutoIt3\MyProjects\MP3_Batchdownloader\Downloaded"
    $returnputin = _GetFilesFolder_Rekursiv($return, "mp3", 0)
    For $i = 1 To $returnputin[0]
    $dateiname = StringSplit($returnputin[$i], "\")
    GUICtrlCreateListViewItem($dateiname[$dateiname[0]] & "|" & $returnputin[$i], $hListView)
    Next
    #EndRegion BIB Füllen

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

    $rightVol = GUICtrlCreateProgress(8, 88, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Right Channel Volume Level", 8, 112, 150, 17)
    $LeftVol = GUICtrlCreateProgress(8, 136, 236, 17)
    GUICtrlSetLimit(-1, 100, 0)
    GUICtrlCreateLabel("Left Channel Volume Level", 8, 64, 150, 17)

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

    GUISetState()
    #EndRegion GUI

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

    #Region GDIstartup
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE)
    _GDIPlus_Startup()
    $iX = 120
    $iY = 145
    $graphics = _GDIPlus_GraphicsCreateFromHWND($hwnd)
    $bitmap = _GDIPlus_BitmapCreateFromGraphics($iX, $iY, $graphics)
    $backbuffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
    _GDIPlus_GraphicsClear($backbuffer)
    $pen1_size = 4
    $pen1 = _GDIPlus_PenCreate(0, $pen1_size)
    $pen2_size = 4
    $pen2 = _GDIPlus_PenCreate(0, $pen2_size)
    $pen3_size = 3
    $pen3 = _GDIPlus_PenCreate(0, $pen3_size)

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

    $fall_speed_l_threshold = 0
    $fall_speed_r_threshold = 0
    $equalizer_width = 24
    $max_l = 0
    $max_r = 0
    $fall_speed = 5
    $fire_up = 15

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

    $fft_start = 7
    $fft_end = 127
    $fft_boost = 750
    $dy = Int($iY / ($fft_end - $fft_start)) + $pen3_size
    $dyy = Int($iY / $dy / 2)
    $eq = 1
    Dim $mpos[2]
    #EndRegion GDIstartup

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

    #Region Loop

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

    While (True)
    If $playing_state = 1 Then
    $song_length = _BASS_ChannelGetLength($MusicHandle, $BASS_POS_BYTE)
    $current = _BASS_ChannelGetPosition($MusicHandle, $BASS_POS_BYTE)
    $percent = Round(($current / $song_length) * 100, 0)
    ConsoleWrite("MH: " & $MusicHandle & " Current: " & $current & " song_length: " & $song_length & @CRLF)
    GUICtrlSetData($progress_slider, $percent)
    $levels = _BASS_ChannelGetLevel($MusicHandle)
    $rightChLvl = _LoWord($levels)
    $rightChLvlper = Round(($rightChLvl / 32768) * 100, 0)
    $LeftChLvl = _HiWord($levels)
    $leftChLvlper = Round(($LeftChLvl / 32768) * 100, 0)
    If IsArray($ARRPLAY) Then
    If $current = $song_length Then
    GUICtrlSetData($slots, 0)
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $titelnummer += 1
    If $titelnummer = UBound($ARRPLAY) - 1 Then $titelnummer = 0
    ; Sleep (50)
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndIf
    EndIf
    Else
    $rightChLvlper = 0
    $leftChLvlper = 0
    EndIf
    GUICtrlSetData($rightVol, $rightChLvlper)
    GUICtrlSetData($LeftVol, $leftChLvlper)
    Display_Vis($eq)

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

    $Msg = GUIGetMsg()
    $tmsg = TrayGetMsg()
    Switch $tmsg

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

    Case $uottray
    GUISetState(@SW_SHOW)
    Case $totray
    GUISetState(@SW_HIDE)
    Case $deleate
    EXITF()
    EndSwitch
    Switch $Msg

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

    Case $Close, $GUI_EVENT_CLOSE
    EXITF()
    Case $Play
    Case $Stop
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    $playing_state = -1
    EndIf
    $ARRPLAY = 0
    Sleep(50)
    Case $newfile
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $ARRPLAY = 0
    Sleep(50)
    $file = FileOpenDialog("Open...", "", "MP3 Files (*.mp3)")
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    Case $Volume_slider
    SoundSetWaveVolume(GUICtrlRead($Volume_slider))
    Case $ordner
    $var = FileSelectFolder("Ordner wählen", "")
    IniWrite(@ScriptDir & "\INRadio.ini", "Load", "BIB", $var)
    Case $Playliste
    $ARRPLAY = _ListViewToArray($hListView)
    $playing_state = 1
    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer][1], 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    EndSwitch
    WEnd
    #EndRegion Loop
    $mpos = MouseGetPos()
    If $mpos[0] >= $width - $iX - 10 And $mpos[0] <= $width - 10 And $mpos[1] > 8 And $mpos[1] <= $iY + 8 And _IsPressed("01", "user32.dll") And WinActive($hwnd) Then
    $eq *= -1
    EndIf
    #Region Func's

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

    Func WM_DROPFILES_FUNC($hwnd, $msgID, $wParam, $lParam);Um mehrere Dateien gleichzeitig droppen zu könen
    Local $nSize, $pFileName
    Local $nAmt = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', 0xFFFFFFFF, 'ptr', 0, 'int', 255)

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

    For $i = 0 To $nAmt[0]
    $nSize = DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', 0, 'int', 0)
    $nSize = $nSize[0] + 1
    $pFileName = DllStructCreate('wchar[' & $nSize & ']')
    DllCall('shell32.dll', 'int', 'DragQueryFileW', 'hwnd', $wParam, 'int', $i, 'ptr', DllStructGetPtr($pFileName), 'int', $nSize)
    $filename = DllStructGetData($pFileName, 1) ;Dateinamen holen
    ConsoleWrite($filename & @CRLF)
    ReDim $gaDropFiles[$i + 1]
    $gaDropFiles[$i] = $filename
    $pFileName = 0
    Next
    ;_ArrayDisplay($gaDropFiles)
    For $i = 0 To UBound($gaDropFiles) - 2 ;kommt derzeit immer noch ein leerer Eintrag am schluss
    GUICtrlCreateListViewItem(StringRegExpReplace($gaDropFiles[$i], '.*\\(.*)\..*', '$1') & "|" & $gaDropFiles[$i], $hListView)
    Next
    _GUICtrlListView_SetColumnWidth($hListView, 0, $LVSCW_AUTOSIZE) ;erst wenn alle eigefügt sind
    EndFunc ;==>WM_DROPFILES_FUNC

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

    Func Aktualisieren()
    EndFunc ;==>Aktualisieren

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

    Func WM_NOTIFY($hwnd, $msgID, $wParam, $lParam);Für Doppelcklick Erkennung
    Local $tagNMHDR, $event, $hwndFrom, $code
    $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return 0
    $code = DllStructGetData($tagNMHDR, 3)
    If $wParam = $hListView And $code = -3 And _GUICtrlListView_GetSelectedCount($hListView) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView)
    If _GUICtrlListView_GetItemSelected($hListView, $i) Then
    $aItem = _GUICtrlListView_GetItemTextArray($hListView, $i)
    ;~ In aItem[1] steht der Dateiname und in $aItem[2] der Pfad zincl. Dateinamen
    _LeftDblClick()
    EndIf
    Next
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    Func _LeftDblClick()
    If $playing_state = 1 Then
    _BASS_ChannelStop($MusicHandle)
    EndIf
    $titelnummer = -1
    $file = $aItem[2]
    $MusicHandle = _BASS_StreamCreateFile(False, $file, 0, 0, 0)
    _BASS_ChannelPlay($MusicHandle, 0)
    $playing_state = 1
    EndFunc ;==>_LeftDblClick

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

    Func Display_Vis($eq = 1)
    _GDIPlus_GraphicsClear($backbuffer, 0x80F0F0F0)
    If $eq > 0 Then
    $levels = _BASS_ChannelGetLevel($MusicHandle)
    $LeftChLvl = $leftChLvlper ;Round(_HiWord($levels) / $iY, 0)
    $rightChLvl = $rightChLvlper ;Round(_LoWord($levels) / $iY, 0)

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

    If $max_l <= $LeftChLvl Then ;fire up higest line
    $max_l = $LeftChLvl + $fire_up
    $fall_speed_l_threshold = 20
    Else
    If $fall_speed_l_threshold <= 0 Then ;increase fall speed of highest line faster until threshold is <= 0 (second fall part)
    If $max_l > $LeftChLvl + $pen2_size * 2 Then $max_l -= $fall_speed
    Else
    $fall_speed_l_threshold -= 1 ;increase fall speed of highest line by slower until threshold is <= 0 (first fall part)
    If $max_l > $LeftChLvl + $pen2_size * 2 Then $max_l -= $fall_speed / 3
    EndIf
    EndIf

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

    If $max_r <= $rightChLvl Then
    $max_r = $rightChLvl + $fire_up
    $fall_speed_r_threshold = 20
    Else
    If $fall_speed_r_threshold <= 0 Then
    If $max_r > $rightChLvl + $pen2_size * 2 Then $max_r -= $fall_speed
    Else
    $fall_speed_r_threshold -= 1
    If $max_r > $rightChLvl + $pen2_size * 2 Then $max_r -= $fall_speed / 3
    EndIf
    EndIf
    _BASS_ChannelGetData($MusicHandle, DllStructGetPtr($fftstruct), $BASS_DATA_FFT256)
    For $i = $fft_start To $fft_end Step $dy
    $fft = Round(DllStructGetData($fftstruct, 1, $i + 1) * $fft_boost)
    $r = (-(Cos(1.7 * $fft / 256) + 1) * 0.5) * 256
    $g = ((Cos(4 * $fft / 256) + 1) * 0.5) * 256
    $b = 0
    _GDIPlus_PenSetColor($pen3, "0xFF" & Hex($r, 2) & Hex($g, 2) & Hex($b, 2))
    _GDIPlus_GraphicsDrawLine($backbuffer, $iX / 5, $i + $dyy, $iX / 5 + $fft, $i + $dyy, $pen3)
    Next
    EndIf
    _GDIPlus_GraphicsDrawImageRect($graphics, $bitmap, $width - $iX - 10, 8, $iX, $iY)
    EndFunc ;==>Display_Vis

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

    Func _SoundGetWaveVolume()
    Local $WaveVol = -1, $p, $ret
    Const $MMSYSERR_NOERROR = 0
    $p = DllStructCreate("dword")
    If @error Then
    SetError(2)
    Return -2
    EndIf
    $ret = DllCall("winmm.dll", "long", "waveOutGetVolume", "long", -1, "long", DllStructGetPtr($p))
    If ($ret[0] == $MMSYSERR_NOERROR) Then
    $WaveVol = Round(Dec(StringRight(Hex(DllStructGetData($p, 1), 8), 4)) / 0xFFFF * 100)
    Else
    SetError(1)
    EndIf
    $p = ""
    Return $WaveVol
    EndFunc ;==>_SoundGetWaveVolume

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

    Func EXITF()
    _BASS_Stop()
    _BASS_Free()
    _GDIPlus_PenDispose($pen1)
    _GDIPlus_PenDispose($pen2)
    _GDIPlus_PenDispose($pen3)
    _GDIPlus_BitmapDispose($bitmap)
    _GDIPlus_GraphicsDispose($graphics)
    _GDIPlus_GraphicsDispose($backbuffer)
    _GDIPlus_Shutdown()
    $fftstruct = 0
    ProcessClose("Radiotuner.exe")
    AdlibUnRegister("Aktualisieren")
    Exit
    EndFunc ;==>EXITF

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

    Func _ListViewToArray($hListView)
    If Not IsHWnd($hListView) Then $hListView = GUICtrlGetHandle($hListView)
    Local $sString = ""
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $sString &= _GUICtrlListView_GetItemTextString($hListView, $i)
    $sString &= ";"
    Next
    $aSplit = StringSplit(StringTrimRight($sString, 1), ";", 2)
    $iUB1 = UBound($aSplit)
    Dim $aRet[$iUB1][1]
    For $i = 0 To $iUB1 - 1
    $aSplit2 = StringSplit($aSplit[$i], "|", 2)
    $iUB2 = UBound($aSplit2)
    If $iUB2 > UBound($aRet, 2) Then ReDim $aRet[$iUB1][$iUB2]
    For $j = 0 To $iUB2 - 1
    $aRet[$i][$j] = $aSplit2[$j]
    Next
    Next
    Return $aRet
    EndFunc ;==>_ListViewToArray
    #EndRegion Func's

    [/autoit]

    Die Änderungen habe ich nur für das Playliste abspielen getestet,

    mfg (Auto)Bert

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™