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

  • [Beispiel] NeMP3-P (MP3-Player) Version 0.8.4.7

    • autoBert
    • 18. Mai 2010 um 04:54

    Hallo Com,

    ich möche euch hiermit NocheinMP3-Player vorstellen. Das Skript ist sozusagen ein Abfallprodukt von JaYT-DwiMP3-P.exe (YouTube Downloader siehe Signatur) Das Skript ist durch die eingebetteten Binärdaten zu gross, daher gesplittet: Hier das Skript:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=beetle.ico
    #AutoIt3Wrapper_outfile=NeMP3-P.exe
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Res_Description=MochEinMP3-Player
    #AutoIt3Wrapper_Res_Fileversion=0.8.4.7
    #AutoIt3Wrapper_Res_LegalCopyright=(Auto)Bert Lizenz: Beerware
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.6.1
    Author: AutoBert: MainWindow with personalized Icons and Player http://www.autoit.de/index.php?page…2461#post162461

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

    CoAuthors funkey: Menu-everywhere http://www.autoit.de/index.php?page…0614#post110614
    (from adapted functions) BugFix: _CreateTmpFile http://www.autoit.de/index.php?page…99705#post99705
    _CreateTmpBinaryCall for creating the binary Data "
    Oscar: _SoundGetWaveVolume() http://www.autoit.de/index.php?page…3826#post133826 (er ist aber nicht der Author)
    You may use this Code complete with no changes or in Parts.
    When you use parts then you have to name me
    or when it is a func from above the name of the Author of the func.
    Both with the thread on AutoIt.de
    #ce ----------------------------------------------------------------------------

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

    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>
    #include <GuiTab.au3>
    #include <GuiListView.au3>
    #include <array.au3>
    #include <File.au3>
    #include <INet.au3>
    #include <Misc.au3>
    #include <array.au3>
    #include <Sound.au3>
    #include <SliderConstants.au3>
    #include <EditConstants.au3>
    #include <String.au3>
    #include <GuiSlider.au3>

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

    #include "BilderDaten.au3"

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

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

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

    Func _CreateTmpFile($sFileName, $sBin)
    ;BugFix
    ; erstellt im TEMPDIR die Datei $sFileName mit Daten von $sBin
    ;http://www.autoit.de/index.php?page…99705#post99705
    Local $sFile = @TempDir & "\" & $sFileName
    Local $hFileOut = FileOpen($sFile, 18)
    FileWrite($hFileOut, Binary($sBin))
    FileClose($hFileOut)
    ;;consolewrite($sFile & @CRLF)
    Return $sFile
    EndFunc ;==>_CreateTmpFile

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

    Global $iWidht = 412, $iHeight = 447, $bMaxi = False, $hListView, $iOldTab
    Global $idContextmenu, $idInsertitem, $idRenameitem, $idDeletemenu, $idDeleteAll, $idDeleteitem
    Global $sUpdateUrl = "http://www.autoit.de/index.php?page=Thread&postID=162461#post162461", $hDown, $sPath, $bDoNotSave = False, $iSize
    Global $idfrmInit = -1, $idcheckMP3, $idcheckMP4, $idcheckMPeg, $idcheckJPG, $idedtSave, $idCheckUpdate, $idbtnOK, $idbtnCancel
    Global $aDropFiles[1], $WM_DROPFILES = 0x233, $mod, $sMp3Dir, $sNewTitle, $bSlider = True
    Global $sLiz = @ScriptDir & "\NeMP3-P_Lizenz.dat", $sLVdat = "NeMP3-P_Music.dat", $sProgTitel = "NeMP3-P ", $sProgVer = "0.8.4.7"
    Global $mpToPlay = -1, $mpToPlayinAR, $htoPlay, $bNaviEnable = False, $istdVl, $iYTVl, $bNotLized = False, $bJPG = True, $bAutoUpdate = True

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

    Global $out
    ;#cs
    If _Singleton($sProgTitel & $sProgVer, 1) = 0 Then
    ; MsgBox(64, $sProgTitel & $sProgVer, $sProgTitel & $sProgVer & ' ist bereits gestartet',5)
    WinActivate($sProgTitel & $sProgVer)
    If _Singleton($sProgTitel & "Einstellungen", 1) Then
    WinActivate($sProgTitel & "Einstellungen")
    EndIf
    Exit
    EndIf
    ;#ce

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

    HotKeySet("{F6}", "_hide")
    Global $idfrmMain = GUICreate($sProgTitel & $sProgVer, $iWidht, $iHeight, IniRead($sLiz, "Pos", "x", "20"), IniRead($sLiz, "Pos", "y", "20"), BitOR($WS_POPUPWINDOW, $WS_THICKFRAME), $WS_EX_CONTROLPARENT)
    Global $origHWND = DllCall("user32.dll", "hwnd", "SetClipboardViewer", "hwnd", $idfrmMain), $sjpgBckgrnd
    GUISetIcon("..\..\..\..\Dokumente und Einstellungen\Bert\Eigene Dateien\beetle.ico")
    $origHWND = $origHWND[0]
    GUISetState(@SW_HIDE, $idfrmMain)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exitMain")
    GUISetOnEvent($GUI_EVENT_RESIZED, "_resized")

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

    Local $idlblMyTitle = GUICtrlCreateLabel($sProgTitel & $sProgVer, 90, 4, 2000, 20, Default, $GUI_WS_EX_PARENTDRAG)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetFont(-1, 12, 800)
    GUICtrlSetResizing(-1, $GUI_DOCKMENUBAR)

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

    Local $idicoClose = GUICtrlCreateIcon(_CreateTmpFile('close.ico', $bdtaClose), -1, $iWidht - 20, 8, 16, 16)
    GUICtrlSetOnEvent($idicoClose, "_exitMain")
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    Local $idicoMini = GUICtrlCreateIcon(_CreateTmpFile('mini.ico', $bdtaMini), -1, $iWidht - 40, 8, 16, 16)
    GUICtrlSetOnEvent($idicoMini, "_Minimize")
    GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKRIGHT + $GUI_DOCKTOP)
    Local $idjpgBckgrnd = GUICtrlCreatePic(_CreateTmpFile('beetle.jpg', $bdtaBeetle), 3, 58, 360, 270, $WS_CLIPSIBLINGS)
    GUICtrlSetState(-1, $GUI_DISABLE)
    Global $idprgPlayer = GUICtrlCreateProgress(5, $iHeight - 42, $iWidht - 10, 40)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR)

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

    Global $idfrmChild = GUICreate("GUI", $iWidht, $iHeight - 35, 1, 35, $WS_POPUP, BitOR($WS_EX_MDICHILD, $WS_EX_ACCEPTFILES), $idfrmMain)
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "SliderFalse")
    GUISetOnEvent($GUI_EVENT_PRIMARYUP, "SliderTrue")
    GUISetOnEvent($GUI_EVENT_DROPPED, "_FilesDropped")
    GUISetState(@SW_HIDE, $idfrmChild)
    ;WinSetTrans("GUI", "", 0)

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

    Local $idLV_Player = GUICtrlCreateListView("Name: |Beschreibung |Pfad", 5, 5, $iWidht - 40, $iHeight - 145, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    GUICtrlSetFont(-1, 9, 800)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    Global $idsliderVol = GUICtrlCreateSlider($iWidht - 35, 0, 30, $iHeight - 120, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_Bottom, $TBS_ENABLESELRANGE, $TBS_TOOLTIPS, $TBS_VERT))
    GUICtrlSetOnEvent(-1, "_SetVol")
    GUICtrlSetLimit(-1, 100, 0) ;maximal 100 minimal 0
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH)
    Global $idsliderPos = GUICtrlCreateSlider(5, $iHeight - 137, $iWidht - 40, 25, BitOR($GUI_SS_DEFAULT_SLIDER, $TBS_Bottom, $TBS_ENABLESELRANGE, $TBS_TOOLTIPS, $TBS_AUTOTICKS))
    GUICtrlSetOnEvent(-1, "_SetPos")
    GUICtrlSetLimit($idsliderPos, 100, 1)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR + $GUI_DOCKWIDTH)
    Global $idbtnFirst = GUICtrlCreateButton("&erstes", 10, $iHeight - 107, 55, 20)
    GUICtrlSetOnEvent(-1, "_playFirst")
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR + $GUI_DOCKWIDTH)
    Global $idbtnPrev = GUICtrlCreateButton("&vorheriges", 70, $iHeight - 107, 65, 20)
    GUICtrlSetOnEvent(-1, "_playPrev")
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR + $GUI_DOCKWIDTH)
    Global $idbtnPlayPause = GUICtrlCreateButton("&abspielen", 140, $iHeight - 107, 65, 20)
    GUICtrlSetOnEvent(-1, "_playPause")
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR + $GUI_DOCKWIDTH)
    GUICtrlCreateButton("&STOP", 210, $iHeight - 107, 55, 20)
    GUICtrlSetOnEvent(-1, "_playStop")
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR + $GUI_DOCKWIDTH)
    Global $idbtnNext = GUICtrlCreateButton("&nächstes", 270, $iHeight - 107, 55, 20)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR + $GUI_DOCKWIDTH)
    GUICtrlSetOnEvent(-1, "_playNext")
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR + $GUI_DOCKWIDTH)
    Global $idbtnLast = GUICtrlCreateButton("&letztes", 330, $iHeight - 107, 55, 20)
    GUICtrlSetOnEvent(-1, "_playLast")
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR + $GUI_DOCKWIDTH)
    ;GUICtrlCreateButton("&zufällige Reihenfolge", 390, $iHeight - 107, 135, 20)
    ;GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR + $GUI_DOCKWIDTH)
    ;GUICtrlSetOnEvent(-1, "_playRandom")
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR + $GUI_DOCKWIDTH)
    Global $idlblPrcntPlayer = GUICtrlCreateLabel(" ", 5, $iHeight - 76, $iWidht - 10, 18, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR)
    Global $idlblTitelPlayer = GUICtrlCreateLabel(" ", 5, $iHeight - 60, $iWidht - 10, 17, $SS_CENTER)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR)
    _LoadLVs()
    _GUICtrlListView_SetColumnWidth($idLV_Player, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($idLV_Player, 1, 0) ;zweite Spalte versteckt wird derzeit nicht benutzt
    _GUICtrlListView_SetColumnWidth($idLV_Player, 2, 0) ;dritte Spalte versteckt

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

    $idContextmenu = GUICtrlCreateContextMenu($idLV_Player)
    $idDeletemenu = GUICtrlCreateMenu("Löschen...", $idContextmenu)
    $idDeleteAll = GUICtrlCreateMenuItem("Alle Einträge", $idDeletemenu)
    GUICtrlSetOnEvent(-1, '_DeleteAll')
    $idDeleteitem = GUICtrlCreateMenuItem("ausgewählte Einträge", $idDeletemenu)
    GUICtrlSetOnEvent(-1, '_DeleteItem')
    GUICtrlCreateMenuItem("", $idContextmenu)

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

    #region ;ab hier Menü überall plazieren siehe http://www.autoit.de/index.php?page…0614#post110614 von funkey
    GUISwitch($idfrmMain)
    ;GUICtrlCreateLabel('', 5, 4, $iWidht - 50, 2, 0x1000)
    GUICtrlCreateLabel('', -2, 28, $iWidht + 4, 2, 0x1000)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP)

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

    Global $idMenueDatei = GUICtrlCreateLabel('&Datei', 5, 8, 40, 18, 0x201)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetResizing(-1, $GUI_DOCKAll)
    GUICtrlSetOnEvent(-1, '_MenuPressed')

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

    Global $idDateiContext = GUICtrlCreateContextMenu(GUICtrlCreateDummy())
    Global $idOptionsOpen = GUICtrlCreateMenuItem("Hintergrund &wählen", $idDateiContext)
    GUICtrlSetOnEvent(-1, "_openJPG")
    Global $idOptionsInit = GUICtrlCreateMenuItem("&Einstellungen", $idDateiContext)
    GUICtrlSetOnEvent(-1, "_Initialize")
    GUICtrlCreateMenuItem("", $idDateiContext)
    Global $idOptionsLoad = GUICtrlCreateMenuItem("MP3's &laden", $idDateiContext)
    GUICtrlSetOnEvent(-1, "_LoadFiles")
    GUICtrlCreateMenuItem("", $idDateiContext)
    Global $idOptionsClose = GUICtrlCreateMenuItem("S&chließen ohne Speichern", $idDateiContext)
    GUICtrlSetOnEvent(-1, "_Close")
    GUICtrlCreateMenuItem("", $idDateiContext)
    Global $idOptionsExit = GUICtrlCreateMenuItem("&Beenden", $idDateiContext)
    GUICtrlSetOnEvent(-1, '_ExitMain')

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

    Global $idMenueHelp = GUICtrlCreateLabel("&Hilfe", $iWidht - 100, 8, 45, 18, 0x201)
    GUICtrlSetFont(-1, 10, 800)
    GUICtrlSetResizing(-1, $GUI_DOCKMENUBAR + $GUI_DOCKRIGHT)
    GUICtrlSetOnEvent(-1, '_MenuPressed')

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

    Global $idHelpContext = GUICtrlCreateContextMenu(GUICtrlCreateDummy())
    Global $idHelpWWW = GUICtrlCreateMenuItem("&Website", $idHelpContext)
    GUICtrlSetOnEvent(-1, '_Website')
    Global $idHelpUpdate = GUICtrlCreateMenuItem("&Update verfügbar?", $idHelpContext)
    GUICtrlSetOnEvent(-1, '_Update')
    GUICtrlCreateMenuItem("", $idHelpContext)
    Global $idHelpAbout = GUICtrlCreateMenuItem("Ü&ber...", $idHelpContext)
    GUICtrlSetOnEvent(-1, '_About')

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

    GUICtrlCreateLabel('', -2, 28, $iWidht + 4, 2, 0x1000)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP)

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

    Global $AccelKeys[2][2] = [["!d", $idMenueDatei],["!h", $idMenueHelp]];["!b", $idMenueEdit],
    GUISetAccelerators($AccelKeys)
    #endregion ;ab hier Menü überall plazieren siehe http://www.autoit.de/index.php?page…0614#post110614 von funkey

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

    ;WinSetOnTop($sProgTitel, "", 1)
    ;GUICtrlSetData($idlblTitelPlayer, "Test")
    ;GUICtrlSetData($idlblPrcntPlayer, "66 %")
    ;
    ;GUISetState(@SW_SHOW, $idfrmChild)
    ;GUISetState(@SW_SHOW, $idfrmMain)
    Dim $aGuis[2]
    $aGuis[0] = $idfrmMain
    $aGuis[1] = $idfrmChild

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

    If FileExists($sLiz) Then
    _Config()
    Else
    $bNotLized = True
    If Not _about() Then Exit
    $bNotLized = False
    ;;consolewrite("Lizenz wurde akzeptiert" & @CRLF)
    _config()
    _SaveConfig()
    EndIf

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

    AdlibRegister("_resized")
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_DROPFILES, "WM_DROPFILES_FUNC")

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

    While 1
    Sleep(1000)
    WEnd

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

    #region ;funcs für Fensterhandling
    Func _Config()
    Local $aPos[4], $i, $j
    _initConfig()
    $istdVl = _SoundGetWaveVolume()
    If $istdVl <> 0 Then IniWrite($sLiz, "Volume", "Standard", $istdVl)

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

    $iYTVl = IniRead($sLiz, "Volume", "NeMP3-P", 50)
    GUICtrlSetData($idsliderVol, $iYTVl)
    _SetVol()
    $aPos[0] = IniRead($sLiz, "Pos", "x", "20")
    $aPos[1] = IniRead($sLiz, "Pos", "y", "20")
    ;WinMove($idfrmMain, "", $aPos[0], $aPos[1], $iWidht, $iHeight,98)
    $sjpgBckgrnd = IniRead($sLiz, "Pos", "PIC", "")

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

    Local $i = IniRead($sLiz, "Pos", "Tab", 0)
    ;WinWaitActive($idfrmChild, "", 5)
    _FadeIn($aGuis, 50, 180, 10)
    ;_resized()
    EndFunc ;==>_Config

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

    Func _SaveConfig()
    Local $i, $aPos = WinGetPos($idfrmMain)
    IniWrite($sLiz, "Pos", "x", $aPos[0])
    IniWrite($sLiz, "Pos", "y", $aPos[1])
    IniWrite($sLiz, "Pos", "width", $aPos[2])
    IniWrite($sLiz, "Pos", "height", $aPos[3])
    IniWrite($sLiz, "Pos", "PIC", $sjpgBckgrnd)
    For $i = 0 To _GUICtrlListView_GetColumnCount($idLV_Player) - 1
    IniWrite($sLiz, "Player", "Col[" & $i & "]", _GUICtrlListView_GetColumnWidth($idLV_Player, $i))
    Next
    SoundSetWaveVolume($istdVl)
    IniWrite($sLiz, "Volume", "NeMP3-P", GUICtrlRead($idsliderVol))
    EndFunc ;==>_SaveConfig

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

    Func _exitMain()
    _playStop()
    _SaveConfig()
    _saveLVs()
    FileDelete(@TempDir & "\normalize.ico")
    FileDelete(@TempDir & "\mini.ico")
    FileDelete(@TempDir & "\maxi.ico")
    FileDelete(@TempDir & "\close.ico")
    FileDelete(@TempDir & "\app.ico")
    FileDelete(@TempDir & "\beetle.jpg")
    HotKeySet("{F6}")

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

    ;funkey Spoiler-Reader
    ; send notification that we no longer will be in clipboard hook queue
    DllCall("user32.dll", "int", "ChangeClipboardChain", "hwnd", $idfrmMain, "hwnd", $origHWND)
    _FadeOut($aGuis, 180, 0, 10)
    Exit
    EndFunc ;==>_exitMain

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

    Func _Close()
    MsgBox(0, "", "Schliessen")
    $bDoNotSave = True
    _FadeOut($aGuis, 180, 0, 30)
    Exit
    EndFunc ;==>_Close

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

    Func _Minimize()
    GUISetState(@SW_MINIMIZE, $idfrmMain)
    EndFunc ;==>_Minimize

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

    #cs
    Func _Maximize()
    GUISetState(@SW_MAXIMIZE, $idfrmMain)
    _Resized()
    GUICtrlSetState($idicoMaxi, $GUI_HIDE)
    GUICtrlSetState($idicoNorm, $GUI_SHOW)
    EndFunc ;==>_Maximize

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

    Func _Normalize()
    GUISetState(@SW_RESTORE, $idfrmMain)
    _Resized()
    GUICtrlSetState($idicoNorm, $GUI_HIDE)
    GUICtrlSetState($idicoMaxi, $GUI_SHOW)
    EndFunc ;==>_Normalize
    #ce

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

    Func _Resized()
    Local $aPos = WinGetPos($idfrmMain)
    Local $aPos2 = WinGetPos($idfrmChild)
    $aPos2[3] += 34
    Local $i, $bResizeIt = False
    For $i = 2 To 3
    If $aPos[$i] <> $aPos2[$i] Then $bResizeIt = True
    Next
    If $bResizeIt Then
    WinMove($idfrmChild, "", $aPos[0], $aPos[1] + 34, $aPos[2], $aPos[3] - 34)
    GUISetState(@SW_SHOW, $idfrmMain)
    GUISetState(@SW_SHOW, $idfrmChild)
    If _Singleton($sProgTitel & "Einstellungen", 1) Then
    WinActivate($sProgTitel & "Einstellungen")
    EndIf
    EndIf
    EndFunc ;==>_Resized

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

    Func _hide()
    GUISetState(@SW_HIDE, $idfrmMain)
    GUISetState(@SW_HIDE, $idfrmChild)
    HotKeySet("{F6}", "_show")
    EndFunc ;==>_hide

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

    Func _show()
    GUISetState(@SW_SHOW, $idfrmMain)
    GUISetState(@SW_SHOW, $idfrmChild)
    _resized()
    HotKeySet("{F6}", "_hide")
    EndFunc ;==>_show

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

    Func _FadeIn($aGuis, $iStart = 20, $iEnd = 255, $iStep = 5, $iDelay = 10)
    For $i = $iStart To 255
    For $j = 0 To UBound($aGuis) - 1
    If $j = 0 Then
    WinSetTrans($aGuis[0], "", $i)
    Else
    If $i < $iEnd Then WinSetTrans($aGuis[$j], "", $i)
    EndIf
    If $i = $iStart Then GUISetState(@SW_SHOW, $aGuis[$j])
    Next
    Sleep($iDelay)
    Next
    EndFunc ;==>_FadeIn

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

    Func _FadeOut($aGuis, $iStart = 255, $iEnd = 20, $iStep = 5, $iDelay = 10)
    For $i = 255 To $iEnd Step -1
    For $j = 0 To UBound($aGuis) - 1
    If $j = 0 Then
    WinSetTrans($aGuis[0], "", $i)
    Else
    If $i < $iStart Then WinSetTrans($aGuis[$j], "", $i)
    EndIf
    Next
    Sleep($iDelay)
    Next
    EndFunc ;==>_FadeOut

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

    Func _OpenJPG()
    $sjpgBckgrnd = FileOpenDialog("Hintergrundbild auswählen", @ScriptDir & "\bin", "Images (*.jpg)", 1, "", $idfrmMain)
    If $sjpgBckgrnd <> "" Then GUICtrlSetImage($idjpgBckgrnd, $sjpgBckgrnd)
    EndFunc ;==>_OpenJPG

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

    ;#cs
    Func _Initialize()
    If $idfrmInit = -1 Then
    $idfrmInit = GUICreate($sProgTitel & " Einstellungen", 300, 275, -1, -1, BitOR($DS_MODALFRAME, $DS_SETFOREGROUND, $WS_SYSMENU), $WS_EX_TOOLWINDOW, $idfrmChild)
    $idcheckJPG = GUICtrlCreateCheckbox("Vorschau-Coverbild zeigen", 5, 5, 280)
    GUISetIcon("..\..\..\..\Dokumente und Einstellungen\Bert\Eigene Dateien\beetle.ico")
    GUICtrlCreateLabel("MP3's sind im Ordner:", 5, 70, 170, 20, $SS_CENTER)
    GUICtrlSetFont(-1, 12)
    Local $idbtnSelect = GUICtrlCreateButton("&ändern", 180, 70, 80, 20)
    GUICtrlSetOnEvent(-1, "_SelectPath")
    $idedtSave = GUICtrlCreateEdit($sMp3Dir, 5, 95, 285, 70, BitOR($ES_MULTILINE, $ES_READONLY))
    ;GUICtrlSetState(-1,$GUI_DISABLE)
    $idCheckUpdate = GUICtrlCreateCheckbox("Updates zulassen", 5, 170, 280)
    $idbtnOK = GUICtrlCreateButton("&übernehmen", 5, 210, 70, 20, $BS_DEFPUSHBUTTON)
    GUICtrlSetOnEvent(-1, "_InitOK")
    $idbtnCancel = GUICtrlCreateButton("&verwerfen", 220, 210, 70, 20)
    GUICtrlSetOnEvent(-1, "_exitInit")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exitInit")
    Else
    ;;consolewrite("Show" & @CRLF)
    EndIf
    GUISetState(@SW_DISABLE, $idfrmMain)
    GUISetState(@SW_DISABLE, $idfrmChild)
    _initConfig()

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

    GUICtrlSetState($idcheckJPG, $bJPG)
    GUICtrlSetState($idCheckUpdate, $bAutoUpdate)
    GUICtrlSetData($idedtSave, $sMp3Dir)
    GUISetState(@SW_SHOW, $idfrmInit)
    EndFunc ;==>_Initialize

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

    Func _initConfig()
    $sMp3Dir = IniRead($sLiz, "laden", "Pfad", @MyDocumentsDir & "\Eigene Musik")
    $bJPG = IniRead($sLiz, "speichern", "JPG", "1")
    $bAutoUpdate = IniRead($sLiz, "Update", "Automatisch", "1")
    EndFunc ;==>_initConfig

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

    Func _SelectPath()
    Local $sNewDir
    If $sMp3Dir = "" Then $sMp3Dir = "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
    $sNewDir = FileSelectFolder("Ordner zum Speichern auswählen", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", 1, $sMp3Dir, $idfrmMain)
    If $sNewDir <> "" Then
    GUICtrlSetData($idedtSave, $sNewDir)
    $sMp3Dir = $sNewDir
    EndIf
    EndFunc ;==>_SelectPath

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

    Func _InitOK()
    $bJPG = Int((5 - GUICtrlRead($idcheckJPG)) / 4)
    $bAutoUpdate = Int((5 - GUICtrlRead($idCheckUpdate)) / 4)
    $sMp3Dir = GUICtrlRead($idedtSave)
    IniWrite($sLiz, "speichern", "JPG", $bJPG)
    IniWrite($sLiz, "Update", "Automatisch", $bAutoUpdate)
    IniWrite($sLiz, "laden", "Pfad", $sMp3Dir)
    _exitInit()
    EndFunc ;==>_InitOK

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

    Func _exitInit()
    GUISetState(@SW_HIDE, $idfrmInit)
    GUISetState(@SW_ENABLE, $idfrmMain)
    GUISetState(@SW_ENABLE, $idfrmChild)
    WinActivate($idfrmMain)
    EndFunc ;==>_exitInit
    #endregion ;funcs für Fensterhandling

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

    #region ;funcs fürs Abspielen
    Func _SoundGetWaveVolume() ;Oscar http://www.autoit.de/index.php?page…3826#post133826
    Local $WaveVol = -1, $p, $ret
    Local Const $MMSYSERR_NOERROR = 0
    $p = DllStructCreate('dword')
    If @error Then Return SetError(2, 0, -2)
    $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 = 0
    Return $WaveVol
    EndFunc ;==>_SoundGetWaveVolume

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

    Func _SetVol()
    SoundSetWaveVolume(GUICtrlRead($idsliderVol))
    EndFunc ;==>_SetVol

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

    Func _playFirst()
    Local $arPlayList = _GUICtrlListView_GetSelectedIndices($idLV_Player, True)
    If $arPlayList[0] > 0 Then
    $bNaviEnable = True
    _playStop()
    $mpToPlay = $arPlayList[1]
    $mpToPlayinAR = 1
    Else
    $mpToPlay = 0
    EndIf
    _PlayIt()
    EndFunc ;==>_playFirst

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

    Func _playPrev()
    Local $arPlayList = _GUICtrlListView_GetSelectedIndices($idLV_Player, True)
    If $arPlayList[0] > 0 Then
    $bNaviEnable = True
    _playStop()
    If $mpToPlay < 0 Then $mpToPlay = 0
    $mpToPlay = $arPlayList[1]
    $mpToPlayinAR -= 1
    If $mpToPlayinAR < 1 Then $mpToPlayinAR = $arPlayList[0]
    $mpToPlay = $arPlayList[$mpToPlayinAR]
    Else
    $mpToPlay -= 1
    If $mpToPlay < 0 Then $mpToPlay = _GUICtrlListView_GetItemCount($idLV_Player) - 1
    EndIf
    _PlayIt()
    EndFunc ;==>_playPrev

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

    Func _playNext()
    Local $arPlayList = _GUICtrlListView_GetSelectedIndices($idLV_Player, True)
    If $arPlayList[0] > 0 Then
    $bNaviEnable = True
    _playStop()
    $mpToPlay = $arPlayList[1]
    $mpToPlayinAR += 1
    If $mpToPlayinAR > $arPlayList[0] Then $mpToPlayinAR = 1; AdlibUnRegister("_CheckPlayer")
    $mpToPlay = $arPlayList[$mpToPlayinAR]
    Else
    $mpToPlayinAR = 0
    $mpToPlay += 1
    If $mpToPlay > _GUICtrlListView_GetItemCount($idLV_Player) - 1 Then $mpToPlay = 0 ;AdlibUnRegister("_CheckPlayer")
    EndIf
    _PlayIt()
    EndFunc ;==>_playNext

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

    Func _playLast()
    Local $arPlayList = _GUICtrlListView_GetSelectedIndices($idLV_Player, True)
    If $arPlayList[0] > 0 Then
    $bNaviEnable = True
    _playStop()
    $mpToPlay = $arPlayList[$mpToPlayinAR]
    Else
    $mpToPlay = _GUICtrlListView_GetItemCount($idLV_Player) - 1
    EndIf
    _PlayIt()
    EndFunc ;==>_playLast

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

    Func _PlayNaviEnable()
    GUICtrlSetData($idbtnPlayPause, "&abspielen")
    GUICtrlSetState($idbtnFirst, $GUI_EnABLE)
    GUICtrlSetState($idbtnPrev, $GUI_EnABLE)
    GUICtrlSetState($idbtnNext, $GUI_EnABLE)
    GUICtrlSetState($idbtnLast, $GUI_EnABLE)
    EndFunc ;==>_PlayNaviEnable

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

    Func _PlayNaviDisable()
    ;GUICtrlSetState($idlblTitelPlayer, $GUI_SHOW)
    GUICtrlSetData($idbtnPlayPause, "&Pause")
    GUICtrlSetState($idbtnFirst, $GUI_DISABLE)
    GUICtrlSetState($idbtnPrev, $GUI_DISABLE)
    GUICtrlSetState($idbtnNext, $GUI_DISABLE)
    GUICtrlSetState($idbtnLast, $GUI_DISABLE)
    EndFunc ;==>_PlayNaviDisable

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

    Func SliderFalse()
    ; ConsoleWrite("Slider False" & @CRLF)
    $bSlider = False
    EndFunc ;==>SliderFalse

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

    Func SliderTrue()
    ; ConsoleWrite("Slider True" & @CRLF)
    $bSlider = True
    EndFunc ;==>SliderTrue

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

    Func _setPos()
    $bSlider = False
    If IsArray($htoPlay) Then
    Local $iLength = _SoundLength($htoPlay, 2) / 1000
    ;ConsoleWrite("Länge in Seknden:" & $iLength & @CRLF)
    Local $iSS = GUICtrlRead($idsliderPos)
    ;ConsoleWrite("neue Länge in Seknden:" & $iSS & @CRLF)
    Local $iHH = Int($iSS / 3600)
    $iSS = Mod($iSS, 3600)
    Local $iMM = Int($iSS / 60)
    $iSS = Mod($iSS, 60)
    ;ConsoleWrite($iHH & ":" & $iMM & ":" & $iSS & @CRLF)
    _SoundSeek($htoPlay, $iHH, $iMM, $iSS)
    _SoundPlay($htoPlay)
    EndIf
    $bSlider = True
    EndFunc ;==>_setPos

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

    Func _CheckPlayer()
    Local $iLength = _SoundLength($htoPlay, 2)
    Local $iPos = _SoundPos($htoPlay, 2)
    ;ConsoleWrite($bSlider & " , " & Int($iPos / 1000) & @CRLF)
    If $bSlider Then GUICtrlSetData($idsliderPos, Int($iPos / 1000)) ;absolut
    If $iPos = $iLength Then
    If $mpToPlayinAR = 0 Then
    If $mpToPlay < _GUICtrlListView_GetItemCount($idLV_Player) - 1 Then
    $mpToPlay += 1
    _playIt()
    Else
    _playNext()
    EndIf
    Else
    _playStop()
    $bNaviEnable = False
    GUICtrlSetData($idbtnPlayPause, "&abspielen")
    Sleep(500)
    _playNext()
    EndIf
    Else
    Local $iPercent = Round($iPos / $iLength * 100)
    If $iPercent <> Number(StringReplace(GUICtrlRead($idprgPlayer), " %", "")) Then
    GUICtrlSetData($idprgPlayer, $iPercent)
    GUICtrlSetData($idlblPrcntPlayer, $iPercent & " %")
    EndIf
    EndIf
    EndFunc ;==>_CheckPlayer

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

    Func _playStop()
    AdlibUnRegister("_CheckPlayer")
    _SoundStop($htoPlay)
    ;if WinExists($sNewTitle) then WinClose($sNewTitle)
    $htoPlay = ""
    GUICtrlSetData($idbtnPlayPause, "&abspielen")
    If $bNaviEnable Then _PlayNaviEnable()
    $mpToPlay = 0
    EndFunc ;==>_playStop

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

    Func _playPause() ;funktioniert nicht richtig
    Local $arPlayList = _GUICtrlListView_GetSelectedIndices($idLV_Player, True)
    If $bNaviEnable Then _PlayNaviEnable()
    If GUICtrlRead($idbtnPlayPause) = "&Pause" Then
    ;;consolewrite("==> Pause" & @CRLF)
    GUICtrlSetData($idbtnPlayPause, "&abspielen")
    _SoundPause($htoPlay)
    Else
    GUICtrlSetData($idbtnPlayPause, "&Pause")
    ;;consolewrite("==> Pause" & @CRLF)
    If IsArray($htoPlay) Then
    ;;consolewrite("==> Resume" & @CRLF)
    ;If $bNaviEnable Then
    _SoundResume($htoPlay)
    ;Else
    ; _PlayIt()
    ;EndIf
    Else
    ;;consolewrite("==> Play" & @CRLF)
    _PlayIt()
    EndIf
    EndIf
    EndFunc ;==>_playPause

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

    Func _playIT()
    Local $szDrive, $szDir, $szFName, $szExt, $split
    Local $arPlayList, $aMpToPlay = _GUICtrlListView_GetItemTextArray($idLV_Player, $mpToPlay)
    ;_ArrayDisplay($aMpToPlay)
    ;;consolewrite($mpToPlay & " in AR " & $mpToPlayinAR & $aMpToPlay[3] & @CRLF)
    GUICtrlSetData($idlblTitelPlayer, $aMpToPlay[1])
    ;ConsoleWrite($bJPG & " ")
    $split = _PathSplit($aMpToPlay[3], $szDrive, $szDir, $szFName, $szExt)
    If $bJPG Then
    $split = StringReplace($aMpToPlay[3], $szExt, ".jpg")
    ;ConsoleWrite($split & @CRLF)
    ;If Not FileExists($split) Then _GetJPG($aMpToPlay[1])
    If Not FileExists($split) Then
    If Not FileExists(@TempDir & "\beetle.jpg") Then _CreateTmpFile('beetle.jpg', $bdtaBeetle)
    $split = @TempDir & "\beetle.jpg"
    EndIf
    ;consolewrite($split & @CRLF)
    GUICtrlSetImage($idjpgBckgrnd, $split)
    EndIf
    If IsArray($htoPlay) Then _SoundStop($htoPlay)
    $htoPlay = _SoundOpen($aMpToPlay[3])
    _SoundPlay($htoPlay)
    Local $iLength = _SoundLength($htoPlay, 2) / 1000
    GUICtrlSetLimit($idsliderPos, $iLength) ;nur wenn absolut
    $bSlider = True
    $arPlayList = _GUICtrlListView_GetSelectedIndices($idLV_Player, True)
    If $arPlayList[0] = 1 Then _GUICtrlListView_SetItemSelected($idLV_Player, $arPlayList[1], False) ;sonst wird auch ein einzelnes Lied wiederholt (Doppelklick)
    AdlibRegister("_CheckPlayer")
    If IsArray($aMpToPlay) Then
    ;;consolewrite("PlayIt IsArray True" & @CRLF)
    If $aMpToPlay[0] = $aMpToPlay Then _PlayNaviDisable()
    Else
    ;;consolewrite("PlayIt IsArray False" & @CRLF)
    _PlayNaviDisable()
    EndIf
    If $bAutoUpdate Then _CheckUpdate()
    EndFunc ;==>_playIT

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

    Func _playRandom()
    EndFunc ;==>_playRandom

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

    #endregion ;funcs fürs Abspielen

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

    #region ;funcs für Tab und Contextmenü LVs

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

    Func _DeleteAll()
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($idLV_Player))
    EndFunc ;==>_DeleteAll

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

    Func _Deleteitem()
    _GUICtrlListView_DeleteItemsSelected(GUICtrlGetHandle($idLV_Player))
    EndFunc ;==>_Deleteitem
    #endregion ;funcs für Tab und Contextmenü LVs

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

    Func _saveLVs()
    Local $sFile, $aItem, $hFileOut
    $hFileOut = FileOpen(@ScriptDir & "\" & $sLVdat, 2)
    For $j = 0 To _GUICtrlListView_GetItemCount($idLV_Player) - 1
    $aItem = _GUICtrlListView_GetItemTextString($idLV_Player, $j)
    FileWriteLine($hFileOut, $aItem)
    Next
    FileClose($hFileOut)
    EndFunc ;==>_saveLVs

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

    Func _LoadLVs()
    Local $aItems
    If FileExists($sLVdat) Then
    $aItems = ""
    _FileReadToArray($sLVdat, $aItems)
    If IsArray($aItems) Then
    ;;;_ArrayDisplay($aItems)
    For $j = 1 To $aItems[0]
    GUICtrlCreateListViewItem($aItems[$j], $idLV_Player)
    Next
    EndIf
    EndIf
    EndFunc ;==>_LoadLVs

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

    #cs
    Func _GetJPG($sTitle)
    If FileExists($sMp3Dir & "\" & $sTitle & ".jpg") Then Return
    Local $sQuery = "http://www.youtube.com/results?search_query=" & StringReplace($sTitle, " ", "+") & "&aq=o"
    $sQuery = StringReplace($sQuery, "+-", "+")
    Do
    $sQuery = StringReplace($sQuery, "++", "+")
    Until @extended = 0
    ;consolewrite($sQuery & @CRLF)
    If $sQuery <> "http://www.youtube.com/results?search_query=0&aq=o" Then
    Local $sQSource = BinaryToString(InetRead($sQuery))
    Local $sVideoDescription
    Local $aVideoDescriptions = StringSplit($sQSource, "video-description-", 1)
    _ArrayDisplay($aVideoDescriptions)
    For $x = 1 To $aVideoDescriptions[0]
    If StringInStr($aVideoDescriptions[$x], $sDL_Url) Then
    $sVideoDescription = $aVideoDescriptions[$x]
    ExitLoop
    EndIf
    Next
    If $bJPG Then
    ;;consolewrite($sVideoDescription & @CRLF)
    Local $aJPG = _StringBetween($sVideoDescription, '<img src="', 'default.jpg" class="')
    If IsArray($aJPG) Then
    ;_arrayDisplay($aJPG)
    ;;consolewrite($sFileName & ".jpg" & @CRLF)
    InetGet($aJPG[0] & "default.jpg", $sMp3Dir & "\" & $sTitle & ".jpg")
    EndIf
    EndIf
    EndIf
    EndFunc ;==>_GetTitleSource
    #ce

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

    #region ;ab hier Funktionen von Menü überall plazieren siehe http://www.autoit.de/index.php?page…0614#post110614 von funkey
    Func _MenuPressed()
    Switch @GUI_CtrlId
    Case $idMenueDatei
    ;;consolewrite("MP " & $idfrmMain & "," & $idMenueDatei & "," & $idDateiContext & @CRLF)
    ShowMenu($idfrmMain, $idMenueDatei, $idDateiContext)
    #cs
    Case $idMenueEdit
    ;;consolewrite("MP " & $idfrmMain & "," & $idMenueEdit & "," & $idEditContext & @CRLF)
    ShowMenu($idfrmMain, $idMenueEdit, $idEditContext)
    #ce
    Case $idMenueHelp
    ;;consolewrite("MP " & $idfrmMain & "," & $idMenueHelp & "," & $idHelpContext & @CRLF)
    ShowMenu($idfrmMain, $idMenueHelp, $idHelpContext)
    EndSwitch
    EndFunc ;==>_MenuPressed

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

    Func _About()
    Local $iRet = 0
    Local $sInfo = "" ;$sProgTitel & @CRLF & @CRLF
    $sInfo &= "Noch ein MP3-Player (c) (Auto)Bert 2010" & @CRLF
    $sInfo &= $sUpdateUrl & @CRLF & @CRLF
    $sInfo &= "Credits: funkey für Menu-everywhere" & @CRLF
    $sInfo &= " BugFix für _CreateTmpFile" & @CRLF
    $sInfo &= " Oscar für _SoundGetWaveVolume" & @CRLF
    $sInfo &= @CRLF
    $sInfo &= "(Auto)Bert schrieb NeMP3-P(layer), er unterliegt der Beer-Ware Lizenz" & @CRLF & @CRLF
    $sInfo &= "Solange Sie diesen Vermerk nicht entfernen,können Sie mit der" & @CRLF
    $sInfo &= "Datei machen, was Sie möchten, ausser dekompilieren!" & @CRLF & @CRLF
    $sInfo &= "Wenn wir uns eines Tages treffen und Sie denken, dass NeMP3-P es wert ist," & @CRLF
    $sInfo &= "können Sie mir dafür ein Bier ausgeben. (Auto)Bert" & @CRLF & @CRLF
    If $bNotLized Then
    $sInfo &= "Ich bin bereit diese Lizenzbedingungen zu akzeptieren, mir ist auch bewusst" & @CRLF
    $sInfo &= "dass dekompilieren (=sichtbar machen des Quellcodes) strafbar ist" & @CRLF
    If MsgBox(68, "About " & $sProgTitel, $sInfo, 0, $idfrmMain) = 6 Then $iRet = 1
    Else
    MsgBox(64, "About " & $sProgTitel, $sInfo, 0, $idfrmMain)
    $iRet = 1
    EndIf
    Return $iRet
    EndFunc ;==>_About

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

    Func _Website()
    MsgBox(64, "Thema im AutoIt-Forum", $sUpdateUrl)
    EndFunc ;==>_Website

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

    ; Show a menu in a given GUI window which belongs to a given GUI ctrl
    Func ShowMenu($hWnd, $CtrlID, $nContextID)
    Local $arPos, $x, $y
    Local $hMenu = GUICtrlGetHandle($nContextID)
    ;;consolewrite("SM " & $hMenu & @CRLF)

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

    $arPos = ControlGetPos($hWnd, "", $CtrlID)

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

    $x = $arPos[0]
    $y = $arPos[1] + $arPos[3]

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

    ClientToScreen($hWnd, $x, $y)
    TrackPopupMenu($hWnd, $hMenu, $x, $y)
    EndFunc ;==>ShowMenu

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

    ; Convert the client (GUI) coordinates to screen (desktop) coordinates
    Func ClientToScreen($hWnd, ByRef $x, ByRef $y)
    Local $stPoint = DllStructCreate("int;int")

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

    DllStructSetData($stPoint, 1, $x)
    DllStructSetData($stPoint, 2, $y)
    ;;consolewrite("CTS1" & @CRLF)

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

    DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hWnd, "ptr", DllStructGetPtr($stPoint))

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

    $x = DllStructGetData($stPoint, 1)
    $y = DllStructGetData($stPoint, 2)
    ; release Struct not really needed as it is a local
    $stPoint = 0
    EndFunc ;==>ClientToScreen

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

    ; Show at the given coordinates (x, y) the popup menu (hMenu) which belongs to a given GUI window (hWnd)
    Func TrackPopupMenu($hWnd, $hMenu, $x, $y)
    ;;consolewrite("TPM" & @CRLF)

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

    DllCall("user32.dll", "int", "TrackPopupMenuEx", "hwnd", $hMenu, "int", 0, "int", $x, "int", $y, "hwnd", $hWnd, "ptr", 0)
    EndFunc ;==>TrackPopupMenu
    #endregion ;ab hier Funktionen von Menü überall plazieren siehe http://www.autoit.de/index.php?page…0614#post110614 von funkey

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

    #region ;Drag and Drop und Doppelklick
    Func WM_DROPFILES_FUNC($hWnd, $msgID, $wParam, $lParam)
    Local $nSize, $pFileName
    Local $nAmt = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", 0xFFFFFFFF, "ptr", 0, "int", 255)
    For $i = 0 To $nAmt[0] - 1
    $nSize = DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", 0, "int", 0)
    $nSize = $nSize[0] + 1
    $pFileName = DllStructCreate("char[" & $nSize & "]")
    DllCall("shell32.dll", "int", "DragQueryFile", "hwnd", $wParam, "int", $i, "ptr", DllStructGetPtr($pFileName), "int", $nSize)
    ReDim $aDropFiles[$i + 1]
    $aDropFiles[$i] = DllStructGetData($pFileName, 1)
    $pFileName = 0
    Next
    EndFunc ;==>WM_DROPFILES_FUNC

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

    Func _FilesDropped()
    Local $szDrive, $szDir, $szFName, $szExt, $split
    _GUICtrlListView_BeginUpdate($idLV_Player)
    For $i = 0 To UBound($aDropFiles) - 1
    $split = _PathSplit($aDropFiles[$i], $szDrive, $szDir, $szFName, $szExt)
    $szExt = StringUpper($szExt)
    ;;consolewrite($aDropFiles[$i] & ", " & $szExt & @CRLF)
    Switch $szExt
    ;Case ".MP3", ".MPEG", ".MPG", ".WAV" ;
    Case ".MP3", ".WMV", ".WAV"
    ;bei MPEG gehen Fenster mit Video auf werden aber nciht wieder geschlossen
    ;wenn das gerade laufende Video geschlossen wird hängt sich Programm auf
    ;daher keine MPEG MPG
    GUICtrlCreateListViewItem($szFName & "||" & $aDropFiles[$i], $idLV_Player)
    EndSwitch
    Next
    _GUICtrlListView_SetColumnWidth($idLV_Player, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_EndUpdate($idLV_Player)
    EndFunc ;==>_FilesDropped

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

    Func _LoadFiles()
    Local $message = "Um mehrere Dateien auszuwählen, ist die Strg-Taste oder die Shift-Taste zu drücken."
    Local $var = FileOpenDialog($message, $sMp3Dir, " (*.mp3;*.wmv;*.wav)", 1 + 4)
    Local $aFiles, $szDrive, $szDir, $szFName, $szExt
    If @error Then
    MsgBox(4096, "", "Keine Datei(en) ausgewählt")
    Else
    _GUICtrlListView_BeginUpdate($idLV_Player)
    $aFiles = StringSplit($var, "|")
    If $aFiles[0] > 1 Then ;trifft nur bei Mehrfachauwal zu
    ;$aFiles[0] enthält Anzahl der Strings
    ;$aFiles[1] enthält den Pfad für alle ausgewählten Lieder
    ;$aFiles[2] enthält 1. Lied
    ;$aFiles[n+1] enthält n. Lied

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

    ;Rückgabe des Fileopenialogs in einzzenlne Strings für Array splitten
    ;_ArrayDisplay($aFiles) ;Array anzeigen nur zu Verständnisuwecken evtl. aktivieren

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

    For $i = 2 To $aFiles[0]
    _PathSplit($aFiles[$i], $szDrive, $szDir, $szFName, $szExt)
    GUICtrlCreateListViewItem($szFName & "||" & $aFiles[1] & "\" & $aFiles[$i], $idLV_Player)
    Next
    Else ;nur eine Datei ausgewählt
    ;;consolewrite($aFiles[1] & @crlf)
    _PathSplit($aFiles[1], $szDrive, $szDir, $szFName, $szExt)
    GUICtrlCreateListViewItem($szFName & "||" & $aFiles[1], $idLV_Player)
    EndIf
    _GUICtrlListView_SetColumnWidth($idLV_Player, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_EndUpdate($idLV_Player)
    EndIf
    EndFunc ;==>_LoadFiles

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

    Func WM_NOTIFY($hWnd, $msgID, $wParam, $lParam)
    Local $tagNMHDR, $event, $hwndFrom, $code, $aItem
    $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return 0
    $code = DllStructGetData($tagNMHDR, 3)
    If $wParam = $idLV_Player And $code = -3 And _GUICtrlListView_GetSelectedCount($idLV_Player) > 0 Then
    $aItem = _GUICtrlListView_GetItemTextArray($idLV_Player)
    ;;consolewrite($aItem[1] & ", " & $aItem[3] & @CRLF)
    $mpToPlay = -1
    _playIT()
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY
    #endregion ;Drag and Drop und Doppelklick

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

    #region updater
    Func _Update()
    IniWrite($sLiz, "Update", "Date", 0) ;damit manuell auf jeden Fall geprüft wird
    _CheckUpdate()
    EndFunc ;==>_Update

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

    Func _CheckUpdate()
    Local $tLastCeck = IniRead($sLiz, "Update", "Date", 0)
    Local $tDiff = _DateDiff('d', "2010/01/01 00:00:00", _NowCalc())
    Local $hFile, $sVar, $iPos, $sVerNr, $sDL_Url, $sDL_Url2
    If $tLastCeck < $tDiff Then
    IniWrite($sLiz, "Update", "Date", $tDiff) ;damit am heutigen Tag nicht mehr geprüft wird
    ToolTip("AutoIt lesen", @DesktopWidth / 2, @DesktopHeight / 2, "Prüfe auf Update ")
    IniWrite($sLiz, "Update", "Status", "Source checken")
    $sVar = _INetGetSource($sUpdateUrl)
    If Not @error Then
    $sVerNr = _StringBetween($sVar, '<title>[Beispiel] NeMP3-P (MP3-Player) Version ', ' - Skripte -')
    If IsArray($sVerNr) Then $sVerNr = $sVerNr[0]
    ;consolewrite($sVerNr & @CRLF)
    If $sVerNr <> $sProgVer Then
    ToolTip("Update von " & $sProgVer & " auf " & $sVerNr, @DesktopWidth / 2, @DesktopHeight / 2, "Prüfe auf Update ")
    $sDL_Url = _StringBetween($sVar, "hat folgende Dateien", 'heruntergeladen') ;dies muss noch exakter werden funktioniert aber
    If IsArray($sDL_Url) Then
    ; _ArrayDisplay($sDL_Url, "Anhänge")
    $sDL_Url = $sDL_Url[1]
    EndIf
    $sDL_Url2 = _StringBetween($sDL_Url, 'href="', '&amp;s=')
    If IsArray($sDL_Url2) Then
    ;_ArrayDisplay($sDL_Url2, "Ref")
    $sDL_Url = $sDL_Url2[1]
    $sDL_Url = StringReplace($sDL_Url, "&amp;", "&")
    EndIf
    ;consolewrite($sDL_Url & @CRLF)
    $iSize = InetGetSize("http://www.autoit.de/" & $sDL_Url)
    If $iSize <> 0 Then ;sollte immer der Fall sein
    $hDown = InetGet("http://www.autoit.de/" & $sDL_Url, @ScriptDir & "\NeMP3.Exe", 1, 1)
    IniWrite($sLiz, "Update", "Status", "Update läuft")
    ToolTip("gestartet", @DesktopWidth / 2, @DesktopHeight / 2, "Update ")
    AdlibRegister("_CheckDone", 1000)
    Else
    ToolTip("fehlerhaft", @DesktopWidth / 2, @DesktopHeight / 2, "Update ")
    Sleep(2000)
    IniWrite($sLiz, "Update", "Status", "fehlgeschlagen")
    EndIf
    Else
    ToolTip("kein Update notwendig", @DesktopWidth / 2, @DesktopHeight / 2, "Update ")
    Sleep(2000)
    EndIf
    Else
    ToolTip("keine Verbidnung" & @CRLF & "probieren Sie es später" & @CRLF & "noch eimal!", @DesktopWidth / 2, @DesktopHeight / 2, "Update ")
    Sleep(2000)
    EndIf
    EndIf
    ToolTip("")
    EndFunc ;==>_CheckUpdate

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

    Func _CheckDone()
    Local $aData = InetGetInfo($hDown) ; Hole alle Informationen.
    Local $iProz = Round($aData[0] / $iSize * 100, 0)
    ;;consolewrite($iProz & @CRLF)
    ToolTip($iProz, @DesktopWidth / 2, @DesktopHeight / 2, "Update ")
    If Not $aData[2] Then Return
    If $aData[3] Then
    If FileMove(@ScriptDir & "\NeMP3.Exe", @ScriptDir & "\NeMP3-P.Exe", 1) Then
    IniDelete($sLiz, "Update", "Status")
    ToolTip("erfolgreich", @DesktopWidth / 2, @DesktopHeight / 2, "Update ")
    Sleep(2000)
    Else
    ;von Hand kopieren
    EndIf
    Else
    ToolTip("fehlerhaft", @DesktopWidth / 2, @DesktopHeight / 2, "Update ")
    Sleep(2000)
    IniWrite($sLiz, "Update", "Status", "fehlgeschlagen")
    EndIf
    AdlibUnRegister("_CheckDone")
    ToolTip("")
    EndFunc ;==>_CheckDone
    #endregion updater

    [/autoit]

    Im Anhang befindet sich das Include-File BilderDaten.au3 als Zip (Sorry, mein INet ist zur Zeit zu schlecht (ca. 4KB/s down und laufend Abbrüche beim Uploaden)bis dahin müssen die Ungeduldigen die Daten aus der Vorgängerversion herauskopieren: Zeile 59 region ;Binärdaten für Bilder bis Zeile 129 #endregion ;Binärdaten für Bilder. Ich stelle diese Datei, die neue EXE und die Prüfung bei Virustotal ein, sobald das INet wieder besser funktioniert.
    Drei Änderung bei Version 0.8.3.6:

    • ich habe ins Dateimenü einen FileOpen-Dialog integriert, so dass man jetzt auch darüber MP3's in die ListView aufnehmen kann
    • Ins Einstellungsmenü den Startordner aufgenommen
    • beim Ausschneiden aus JaYT-DwiMP3-P versehentlich Variablen nicht angepasst, so dass das Contextmenü der Listview zum Löschen nicht funktionierte, dieser Bug ist gefixt

    Bei Version 0.8.3.4.1

    • WAV-Dateien zum Abspielen zugelassen
    • eine Auto-Update Funktion für die Exe eingebaut. Achtung während auf Update geprüft wird sind alle anderen Funktionen nicht verfügbar (Grund InetGetSource, wenn jemand eine andere Lösung kennt bitte posten), wenn eine neue Versionsnr. vorliegt (anhand der Überschrift dieses Postes) wird diese heruntergeladen. Ab diesem Zeitpunkt sind auch wieder alle anderen Funktionen (dank InetGet) verfügbar. Der Status wird über Tooltips angezeigt


    Bei Verison 0.8.4.6 wird wenn _SoundGetWaveVolume 0 zurückgibt dieser Wert nicht mehr in die Ini geschrieben. Ausserdem wurde ein Slider für die Positionierng eingebaut, dieser ist aber noch sehr buggy. (Versions-Nr. kommt daher, dass ich Änderungen in JaYT-DwiMP3-P im Playerbereich hier gleich nachvollziehe, bzw. umgedreht damit ich einen übereinstimmenden Programmstand habe.

    Die Virenwächter scheinen jetzt mein Programm zu akzeptieren, denn Ergebnis ist 0,
    siehe: http://www.virustotal.com/de/analisis/fd…6b5f-1281191718

    Die ebenfalls im Zip [Edit5] im Anhang[/Edit5] befindliche NeMP3-P.exe darf nicht verändert werden und es darf auch keine andere als dieses Original NeMP3-P.exe (bzw. spätere von mir hochgesltelte Updates ) in Umlauf gebracht werden. Den Skriptcode könnt ihr als Beispiel verwenden und auch Teile davon direkt übenehmen. Ich bestehe dann aber auf einer Namensnennung von mir bzw. sollte es sich um Funktionen von

    • BugFix: _CreateTmpFile Fremddateien "includen" (ohne FileInstall)
    • funkey: Menu-everywhere Menü überall platzierenhttp://www.autoit.de
    • Oscar: _SoundGetWaveVolume [ offen ] Gibt es eine SoundGetWaveVolume() func.?Author ist nicht bekannt wenn er sich meldet wird er natürlich hier aufgenommen


    auf deren Namensnennung zumindest als Kommentar im Skript, eine Namensnennung von mir bei den Credits einer kompilierten Exe ist nicht nötig.

    How to Use: Einfach MP3-Files auf das NeMP3-P Fenster ziehen und fallen lassen oder [ Die ListView wird beim beenden gespeichert und beim nächsten Programmstart wider geladen.
    Zu beachten ist, wenn mehrere Lieder ausgewählt sind, werden nur die ausgewählten Lieder gespielt.
    Falls sich im gleichen Ordner wie das zu spielende Lied eine JPG-Datei mit dem gleichen Namen wie das Lied (JPG anstelle MP3) befindet, wird dieses standardmäßig als Hintergrundbild eingeblendet. Wird keines gefunden wird automatisch wieder das im Source hinterlegte Bild verwendet. Dieses Feature kann über Einstellungen geändert werden.
    Hier noch ein ScreenShot:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Da das Skript aus JaYT-DwiMP3-P ausgeschnitten ist sind sicherlich unnötige Variablen und evtl. auch noch Skriptzeilen vorhanden, also nicht wundern.

    Über Anregungen, Kritik, Bugmeldungen freue ich mich,

    Edit1: damit ich die Thread-ID für den Source
    Edit2: aus Angst um Trademarkverletzung umbenannt
    Edit4+5: kleines BugFix
    Edit6: auf Grund von Oscar Auflistng der zu nennenden Authoren für funcs korrigiert
    Edit7: Skript von Version 0.8.3.6 eingestellt BugFix Contextmenü und Erweiterung, jetzt kann man auch MP3's über das Menü hinzufügen
    Edit8: Skript von Version 0.8.4.1 eingestellt AutoUpdate-Funktion eingebaut (EXE folgt noch)
    Edit13: Skript und Exe von Version 0.8.4.6 eingestellt
    Edit15: Skript (in Spoiler) und Exe von Version 0.8.4.7 eingestellt (Slider zum navigieren innerhalb eines Liedes eingebaut)
    Edit16: Link zur Analyse auf Viren ausgetauscht, Ergebnis 0!
    Edit17: Skript (im Anhang) ausgetauscht

    Bekannte Bugs:

    • Slider für Positionierung innerhalb des Liedes erledigt
    • Vorschau-/Coverbilder werden nicht angezeigt erledigt

    vor 0.8.4.7 51 mal downgeloaded

    mfg (Auto)Bert

    Dateien

    NeMP3-P_0841.JPG 44,32 kB – 0 Downloads BilderDaten.au3 239,61 kB – 592 Downloads NeMP3-P.exe 993,4 kB – 610 Downloads NeMP3-0847.au3 38,12 kB – 550 Downloads
  • Eine Art Patcher

    • autoBert
    • 17. Mai 2010 um 21:44
    Zitat von black_skorpi

    musstest du wirklich solch einen alten thread wieder herauskramen? (naja 2 monate...)

    wenn jemand noch etwas fragen will, dann soll dieser mir eine pn schreiben ;)

    ich denke mal er hat dies hier gelesen:

    Zitat von black_skorpi

    darf ich hierauf hinweisen? (schon geschehen xD)
    da kannst du mal nachblättern... schon ein bisschen alt aber geht noch
    ich muss das mal bald aktualisieren, das ist fast peinlich, wie das aufgebaut ist xD


    sieh es also als Erinnerung,

    mfg (Auto)Bert

  • Autoit das Programm wenn es sich schließt neu Startet

    • autoBert
    • 17. Mai 2010 um 21:31
    Zitat von Kumpel-Blase

    Also ist das der Code den ich suche?

    Nein denn dieses Skript würde nur einmal deine EXE restarten und danach in der nächsten While ...Wend verbringen bis du manuell deinen EXE neu gestartet hast, danach wieder von neuem Restart usw.
    die Lösung am Beispiel von Notepad:

    [autoit]

    While 1
    While ProcessExists("notepad.exe")
    Sleep(100)
    WEnd
    Run("notepad.exe")
    WEnd

    [/autoit]

    du kannst jetzt Notepad nicht mehr beenden bis das Skript abgebrochen wird,

    mfg (Auto)Bert

  • Crypter weiterführendes...

    • autoBert
    • 17. Mai 2010 um 19:04
    Zitat von killax2x

    aber nur theoretisch : würde es gehen die exe auszuführen wenn der code verschlüsselt ist. ohne extratools


    Nein

  • _IELinkGetCollection mit for/next stürzt ab

    • autoBert
    • 17. Mai 2010 um 17:35

    Hallo rew,

    poste das komplette Skript ohne solche Anonymisierung wie ""bla bla"" dann wird es einfacher. So kann es ja keiner nachvollziehen. Meine Glaskugel ist auch defekt,

    mfg (Auto)Bert

  • Text Datei mit FF runterladen

    • autoBert
    • 17. Mai 2010 um 11:36

    darauf hatte ich ihn schon hingewiesen, siehe [ gelöst ] Text Datei mit FF runterladen

    mfg (Auto)Bert

  • RichEdit Text unlöschbar

    • autoBert
    • 16. Mai 2010 um 16:47

    Hallo 2112,

    geht ganz einfach:

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_Au3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <GuiRichEdit.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    Global $lblMsg, $hRichEdit, $hGui

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

    Main()

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

    Func Main()
    Local $iMsg, $btnNext, $iStep = 0
    $hGui = GUICreate("Example (" & StringTrimRight(@ScriptName,4) &")", 320, 350, -1, -1)
    $hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 300, 220, _
    BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    $lblMsg = GUICtrlCreateLabel("", 10, 235, 300, 60)
    $btnNext = GUICtrlCreateButton("Next", 270, 310, 40, 30)
    GUISetState()

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

    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    _GuiCtrlRichEdit_SetText($hRichEdit, "Paragraph 1 ")
    _GuiCtrlRichEdit_SetEventMask($hRichEdit, $ENM_PROTECTED)
    While True
    $iMsg = GUIGetMsg()
    Select
    Case $iMsg = $GUI_EVENT_CLOSE
    GUIDelete()
    Exit
    Case $iMsg = $btnNext
    $iStep += 1
    Switch $iStep
    Case 1
    _GuiCtrlRichEdit_SetSel($hRichEdit, 0, 2)
    _GuiCtrlRichEdit_SetCharAttributes($hRichEdit, "+un")
    Report("1. Two characters underlined")
    Case 2
    _GuiCtrlRichEdit_SetSel($hRichEdit, 1, 5)
    ;~ _GuiCtrlRichEdit_SetCharAttributes($hRichEdit, "+bo")
    _GuiCtrlRichEdit_SetCharAttributes($hRichEdit, "+pr")
    Report("2. Some characters protect")
    Case 3
    ; Stream all text to the Desktop so you can look at settings in Word
    _GuiCtrlRichEdit_Deselect($hRichEdit)
    _GuiCtrlRichEdit_StreamToFile($hRichEdit, @DesktopDir & "\gcre.rtf")
    GUICtrlSetState($btnNext, $GUI_DISABLE)
    EndSwitch
    EndSelect
    WEnd
    EndFunc ;==>Main

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

    Func WM_NOTIFY($hWnd, $iMsg, $iWparam, $iLparam)
    #forceref $hWnd, $iMsg, $iWparam
    Local $iCode, $tNMHDR
    $tNMHDR = DllStructCreate($tagNMHDR, $iLparam)
    $iCode = DllStructGetData($tNMHDR, "Code")
    Select
    Case $iCode = $EN_PROTECTED
    MsgBox(0, "", "")
    _GUICtrlRichEdit_SetReadOnly ($hRichEdit)
    case Else
    _GUICtrlRichEdit_SetReadOnly ($hRichEdit,False)
    EndSelect
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    Func Report($sMsg)
    $sMsg = $sMsg & @CR & @CR & _GUICtrlRichEdit_GetCharAttributes($hRichEdit)
    GUICtrlSetData($lblMsg, $sMsg)
    ControlFocus($hRichEdit, "", "")
    EndFunc ;==>Report

    [/autoit]

    ist aber afair das erste Mal das ich mich mit RichEdit beschäftige, sonst hätte ich es vorhin schon gepostet,

    Edit: zu früh gefreut klappt leider nicht immer (ca 40%) meistens wird dann das ganze RichEdit ReadOnly

    mfg (Auto)Bert

  • Text Datei mit FF runterladen

    • autoBert
    • 16. Mai 2010 um 16:35

    Hallo oh-ha,

    Zitat von Hilfe Auszug zu InetGet

    Bemerkungen

    Für diese Funktion muss Internet Explorer 3 oder höher installiert sein.

    Der URL-Parameter sollte die folgende Form haben: "http://www.somesite.com/path/file.html" - wie eine Adresse, die man in den Webbrowser tippt.

    Um einen Benutzernamen und Passwort zum Verbinden zu benutzen, schreibt man einfach "Username:Passwort@" vor den Servernamen, z.B. "http://myuser:mypassword@https://autoit.de/www.somesite.com"


    eventuell musst du auch vor InetGet

    [autoit]

    HttpSetUserAgent

    [/autoit]

    benutzen, da es sonst vom Server abgeblockt wird,

    mfg (Auto)Bert

  • RichEdit Text unlöschbar

    • autoBert
    • 16. Mai 2010 um 15:56

    Hallo H2112,

    ändere doch das Beispiel aus der Hilfe:

    Spoiler anzeigen
    [autoit]

    Func WM_NOTIFY($hWnd, $iMsg, $iWparam, $iLparam)
    #forceref $iMsg, $iWparam
    Local $hWndFrom, $iCode, $tNMHDR, $tMsgFilter, $hMenu
    $tNMHDR = DllStructCreate($tagNMHDR, $iLparam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hRichEdit
    Select
    Case $iCode = $EN_MSGFILTER
    $tMsgFilter = DllStructCreate($tagEN_MSGFILTER, $iLparam)
    If DllStructGetData($tMsgFilter, "msg") = $WM_RBUTTONUP Then
    $hMenu = GUICtrlGetHandle($mnu)
    SetMenuTexts($hWndFrom, $hMenu)
    _GUICtrlMenu_TrackPopupMenu($hMenu, $hWnd)
    EndIf
    Case $ENM_PROTECTED
    ;hier musst du dann die Eingaben sperren bzw. verwerfen
    EndSelect
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    mfg (Auto)Bert

  • AutoStarter neue Version: v 0.7.4

    • autoBert
    • 16. Mai 2010 um 15:45
    Zitat von Ubuntu

    Ganz schön feist RULES ;)

    Die gui hat nen Coolen Stil :thumbup:

    mfg Ubuntu

    schön, dass es dir gefällt.

    @all: angeregt durch [ offen ] Video Player mit Wiedergabeliste bin ich am nachdenken, ob ich auch noch einen Reiter für YouTube-Videos machen soll, also ohne downzuloaden. Dafür spricht das es dann 100% YT konform ist, dagegen viele (auch ich selbst) können es nicht nutzen, da die INetleistung (bei mir ca. 14 KB/s Web'n'Walk) nicht ausreicht,

    mfg (Auto)Bert

  • Video Player mit Wiedergabeliste

    • autoBert
    • 16. Mai 2010 um 15:30

    Hallo stayawayknight,

    Zitat von stayawayknight

    Müsste doch eig. so gehen:

    [autoit]


    #include <Sound.au3>
    While 1

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

    if _Soundlength($song, 2) = _SoundPos($song, 2) Then
    ;....
    EndIf
    WEnd

    [/autoit]

    in diesem Thread geht es um das Abspielen von Online (YouTube) Inhalten ohne diese downzuloaden. Du solltest vielleicht die Threads vorher lesen, bevor du einzelne Aussagen (aus dem Zusammenhang gerissen) in Zweifel ziehst,

    PS.: so ist deine Lösung (wo einsetzbar) sicherer

    [autoit]

    if _Soundlength($song, 2) >= _SoundPos($song, 2) Then

    [/autoit]

    jetzt 100% vorher nur 99,999% ;)

    mfg (Auto)Bert

  • JaYT-DwiMP3-P (YT-Downloader) Version 0.8.7.1

    • autoBert
    • 16. Mai 2010 um 03:59
    Zitat von name22

    Youtube hat eigenartigerweise nicht alle Videos in diesem neuen Stil... :S

    Kennst du etwa welche, die mit der neuen Version nicht downgeloaded werden, wenn ja bitte unbedingt die Links posten, danke

    @all weiss jemand wie man an die Titellänge kommt, neues Update siehe Post #1, da ich dafür zusätzliche Query-Anfragen downloaden muss und dann jede Seite auswerten muss, habe ich es auf 1 Anfrage beschränkt. Dies bringt bei 80% der von mir getesten Lieder die Titellänge, zusätzlich kann jetzt auch das Vorschau-/Coverbild mit heruntergeladen werden. Achtung: dies steht standardmässig auf ja, muss also eventuell in den Einstellungen geändert werden,

    mfg (Auto)Bert

  • Video Player mit Wiedergabeliste

    • autoBert
    • 16. Mai 2010 um 01:17

    Hallo Zero2q,

    du hast jetzt die Testversion gestartet, d.h. nur Ausgabe des Titels auf der Konsole. Du musst das auskommentierte zulassen, also so:
    Edit4: neuer Ansatz

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>
    #Include <GuiComboBox.au3>
    #Include <Date.au3>
    #include <array.au3> ;wenn Ini geklärt kann dies gelöscht werden

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

    Global $sSender

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

    $Form1 = GUICreate("Video Stream Player by Michi2q", 306, 421, 193, 139)
    $RadioBox = GUICtrlCreateCombo("", 15, 130, 270, 15, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
    GUISetBkColor(0xABABAB)
    $Dauer = GUICtrlCreateLabel("0",15,190,270,20) ;wieder löschen
    $Group1 = GUICtrlCreateGroup("Player", 8, 8, 289, 89)
    GUICtrlSetFont(-1, 10, 800, 2, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xC0DCC0)
    $play = GUICtrlCreateButton("Abspielen", 16, 32, 75, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0x800000)
    $stop = GUICtrlCreateButton("Stopp", 96, 32, 75, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0x800000)
    $lauter = GUICtrlCreateButton("Lauter", 16, 64, 75, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0x800000)
    $low = GUICtrlCreateButton("Leiser", 96, 64, 75, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0x800000)
    $Mute = GUICtrlCreateButton("Ton aus", 176, 64, 75, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0x800000)
    $Button6 = GUICtrlCreateButton("Links eintragen", 176, 32, 83, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Comic Sans MS")
    GUICtrlSetColor(-1, 0x800000)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Playliste", 8, 104, 289, 305)
    GUICtrlSetFont(-1, 10, 800, 2, "Comic Sans MS")
    GUICtrlSetColor(-1, 0xC0DCC0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)

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

    ;GUICtrlSetState(-1, $GUI_DISABLE)
    ; INET BEFEHLE
    $oIE = _IECreateEmbedded()
    GUICtrlCreateObj($oIE, -30, -30, 0, 0)

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

    ; Inet Load
    If Not FileExists("Stream.urls") Then
    MsgBox(16, "Radio-Streamer", "Die URL Liste Existiert Nicht!")
    GUICtrlSetState($play, $GUI_DISABLE)
    GUICtrlSetState($RadioBox, $GUI_DISABLE)
    Else
    $Liste = ""
    $Sections = IniReadSection("Stream.urls", "Playlist - Streams")
    $aTimes = IniReadSection("Stream.urls", "Playlist - Time") ;nur zur Kontrolle wieder löschen hier werden die Zeiten eingelesen
    _ArrayDisplay($aTimes) ;wenn Ini geklärt kann dies gelöscht werden
    For $i = 1 To $Sections[0][0]
    $Liste &= $Sections[$i][0] & "|"
    Next
    $Liste &= "---" ;Ende der Liste kann auch ein leerstelle sein
    GUICtrlSetData($RadioBox, $Liste)
    EndIf

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Mute
    Send("{VOLUME_MUTE}")
    Case $low
    Send("{VOLUME_DOWN}")
    Case $lauter
    Send("{VOLUME_UP}")

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

    ; Musik Abspielen

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

    Case $play
    If Not GUICtrlRead($RadioBox) = "" Then
    $iLast = _GUICtrlComboBox_GetCount($RadioBox)
    While $iLast > _GUICtrlComboBox_GetCurSel($RadioBox)+1
    $sTitel = GUICtrlRead($RadioBox)
    $sSender = IniRead("Stream.urls", "Playlist - Streams", $sTitel, "")
    $iTime = IniRead("Stream.urls", "Playlist - Time", $sTitel, 20) ;hier läuft es schief da der Default Wert genommen wird
    GUICtrlSetState($play, $GUI_DISABLE)
    GUICtrlSetState($stop, $GUI_ENABLE)
    GUICtrlSetState($RadioBox, $GUI_DISABLE)
    _IENavigate($oIE, $sSender,1) ;hier ist der eigentliche Aufruf darf nur zu Testzwecken auskommentiert werden
    $iEnd = _DateAdd('s',$iTime,_NowCalc())
    ConsoleWrite($iTime & @TAB & $iEnd & @CRLF)
    ConsoleWrite($sTitel & @TAB & "Start: " & _NowCalc() & @CRLF)
    Do
    Sleep(1000)
    Until _NowCalc() > $iEnd
    ConsoleWrite(@TAB & "Ende: " & _NowCalc() & @CRLF)

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

    ;bis hier ich musste das zum Testen auskommentieren, da es keinen Spass macht immer nur ein paar Musikfetzen zu hören und dann wieder zu warten bis es nachgeladen hat
    ;#ce
    Sleep(500)
    _GUICtrlComboBox_SetCurSel($RadioBox, _GUICtrlComboBox_GetCurSel($RadioBox)+1)
    WEnd
    EndIf
    Case $stop
    _IENavigate($oIE, "about:blank")
    GUICtrlSetState($play, $GUI_ENABLE)
    GUICtrlSetState($stop, $GUI_DISABLE)
    GUICtrlSetState($RadioBox, $GUI_ENABLE)

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

    EndSwitch
    WEnd

    [/autoit]

    dieses Schema scheitert derzeit noch am Auslesen der Zeit aus der INI, finde jetzt aber den Fehler nicht :sleeping: Vielleicht findet ihn ja jemand anders, ansonsten schaue ich heute Mittag noch einmal
    Edit5: der Fehler tritt nur bei der von dir eingestellten INI auf, mit der ich dummerweise getestet habe. Mit einer von mir erzeugten INI klappt es

    mfg (Auto)Bert

    Dateien

    stream.zip 337 Byte – 230 Downloads
  • GUICtrlCreateList nächstes aus der Liste wählen

    • autoBert
    • 15. Mai 2010 um 23:58

    Hallo XXlolimanxx,

    falls du am Ende der Liste wieder zum Anfang springen willst musst du so abändern:[autoit]Func _Next()
    $iIndex = _GUICtrlListBox_GetCurSel($hList)
    if $iIndex = _GUICtrlListBox_GetCount($hList) - 1 then $iIndex = -1
    _GUICtrlListBox_SetCurSel($hList, $iIndex + 1)
    EndFunc ;==>_Nextautoit]

    mfg (Auto)Bert

  • Video Player mit Wiedergabeliste

    • autoBert
    • 15. Mai 2010 um 23:45

    Hallo Zero2q,

    Zitat von Zero2q

    Die Playlist Funktioniert nicht wirklich...
    Er überspringt immer das letzte lied besser gesagt er spielt nur eins der liste ab... -.-"

    Ich kann das Skript nur wegen meiner INet-Verbindung (ca. 14 KB/s) nur so testen:

    Spoiler anzeigen
    [autoit]

    Case $play
    If Not GUICtrlRead($RadioBox) = "" Then
    $iLast = _GUICtrlComboBox_GetCount($RadioBox)
    While $iLast > _GUICtrlComboBox_GetCurSel($RadioBox)+1
    $sSender = IniRead("Stream.urls", "Playlist - Streams", GUICtrlRead($RadioBox), "")
    $iTime = IniRead("Stream.urls", "Playlist - Time", GUICtrlRead($RadioBox), "")
    GUICtrlSetState($play, $GUI_DISABLE)
    GUICtrlSetState($stop, $GUI_ENABLE)
    GUICtrlSetState($RadioBox, $GUI_DISABLE)
    #cs
    _IENavigate($oIE, $sSender,1)
    $iStart = TimerInit()
    Do
    Sleep(1000)
    $iDiff = TimerDiff($iStart)
    Until $iDiff > $iTime
    #ce
    Sleep(500)
    ConsoleWrite($sSender & @CRLF)
    _GUICtrlComboBox_SetCurSel($RadioBox, _GUICtrlComboBox_GetCurSel($RadioBox)+1)
    WEnd
    EndIf

    [/autoit]

    es wird aber jeder Titel der Playliste in die Scite-Konsole geschrieben. Hast du das komplette Skript von meinem vorgehendem Post genommen, oder nur obigen Teil ausgetauscht. Um auch das letzte Lied zu hören musste ich etwas tricksen:

    Spoiler anzeigen
    [autoit]

    ; Inet Load
    If Not FileExists("Stream.urls") Then
    MsgBox(16, "Radio-Streamer", "Die URL Liste Existiert Nicht!")
    GUICtrlSetState($play, $GUI_DISABLE)
    GUICtrlSetState($RadioBox, $GUI_DISABLE)
    Else
    $Liste = ""
    $Sections = IniReadSection("Stream.urls", "Playlist - Streams")
    For $i = 1 To $Sections[0][0]
    $Liste &= $Sections[$i][0] & "|"
    Next
    $Liste &= "---" ;Ende der Liste kann auch ein leerstelle sein
    GUICtrlSetData($RadioBox, $Liste)
    EndIf

    [/autoit]

    deine Lösung für die Playlist Zusammenstellung kommt mir etwas zu umständlich vor. Ich würde eine ListView nehmen mit 3 Spalten 1. Spalte Titel und Interpret 2. Spalte Link 3. Spalte Dauer und auf ButtonKlick entweder in einer 2. Gui die Titel erfassen oder mit Hilfe von ListView - Editieren aller SubItems direkt in der Listview editieren lassen. Listviews lassen sich auch sehr einfach als Datei speichern:

    Spoiler anzeigen
    [autoit]

    Func _saveLVs()
    Local $hFileOut, $sFile, $aItem
    $hFileOut = FileOpen(@ScriptDir & "\" & $sFile, 2)
    For $j = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $aItem = _GUICtrlListView_GetItemTextString($hListView, $j)
    FileWriteLine($hFileOut, $aItem)
    Next
    FileClose($hFileOut)
    EndFunc ;==>_saveLVs

    [/autoit]

    und wieder laden:

    Spoiler anzeigen
    [autoit]

    Func _LoadLVs()
    Local $sFile, $aItems
    If FileExists($sFile) Then
    $aItems = ""
    _FileReadToArray($sFile, $aItems)
    If IsArray($aItems) Then
    ;;;_ArrayDisplay($aItems)
    For $j = 1 To $aItems[0]
    GUICtrlCreateListViewItem($aItems[$j], $hListView)
    Next
    EndIf
    EndIf
    EndFunc ;==>_LoadLVs

    [/autoit]

    so mache ich es in meinem YouTube Batch-Downloader (siehe Signatur), wenn ich wüsste wie ich an die Titel-Zeit komme, könnte ich alle benötigten Angaben über Clipget in die Listview aufnehmen,

    mfg (Auto)Bert

  • GUICtrlCreateList nächstes aus der Liste wählen

    • autoBert
    • 15. Mai 2010 um 23:08
    Zitat von XXlolimanxx


    ;ich möchte das, wenn a markiert ist, b markiert wird ;D

    Wir sind hier kein mach mal Forum :!: Das Board hat auch eine SuchFunktion, desweiteren gibt es eine gute Hilfe Lies dir dort die Hilfe zu

    [autoit]

    _GUICtrlListBox_GetCount
    _GUICtrlListBox_GetCurSel
    _GUICtrlListBox_SetCurSel

    [/autoit]

    durch

    mfg (Auto)Bert

  • JaYT-DwiMP3-P (YT-Downloader) Version 0.8.7.1

    • autoBert
    • 15. Mai 2010 um 22:48

    Hallo com,

    neues Update siehe #1

    Aufgrund @Schrubbers Beitrag habe ich die letzten Tage (trotz meiner mageren Verbindung z.Zt. ca.14 KB/s) nochmal ausgiebig getestet und dabei leider festgestellt, dass nicht alle Lieder aus Playlisten heruntergeladen werden. Dieser Bug ist nun gefixt.

    Seid bitte so nett und meldet die Download-Links die nicht funktionieren (falls welche vorkommen)

    mfg (Auto)Bert

  • Mp3 Player

    • autoBert
    • 15. Mai 2010 um 21:33

    Hallo descent,

    hier die Suchfunktion:

    [autoit]

    Func search()
    Local $iStart, $aSel = _GUICtrlListView_GetSelectedIndices($ListView2, True)
    If $aSel[0] > 0 Then
    $iStart = $aSel[1]
    Else
    $iStart = -1
    EndIf
    Local $read = GUICtrlRead($Search)
    Local $iFound = _GUICtrlListView_FindInText($ListView2, $read, $iStart, True)
    If $iFound <> -1 Then
    ;ConsoleWrite($iFound & @CRLF)
    _GUICtrlListView_EnsureVisible($ListView2, $iFound)
    _GUICtrlListView_SetItemSelected($ListView2, $iFound)
    EndIf
    EndFunc ;==>search

    [/autoit]

    falls du Adlib umgehen willst kannst du die Anzeige der Spieldauer so in der Schleife machen:

    [autoit]

    While 1
    If $playing = True Then
    $iSoundPos = _SoundPos($abspiel)
    If $iSoundPos <> GUICtrlRead($Label2) Then GUICtrlSetData($Label2, _SoundPos($abspiel))
    EndIf
    ;....
    Wend

    [/autoit]

    du musst dann Zeile 25 so ändern:

    [autoit]

    Global $playing = False, $iSoundPos = 0

    [/autoit]

    mfg (Auto)Bert

  • Problem mit TreeView

    • autoBert
    • 15. Mai 2010 um 20:32

    Hallo chrys,

    dafür kannst du

    [autoit]

    #include <GuiTreeView.au3>
    ;....dein Skript
    _GUICtrlTreeView_SelectItem($hTreeView, 0)

    [/autoit]

    nehmen,

    mfg (Auto)Bert

  • Problem mit TreeView

    • autoBert
    • 15. Mai 2010 um 17:03
    Zitat von Crys

    ch möchte quasi einen Liste erzeugen, die in zwei oder drei Teile geteilt ist und viele Unterpunkte hat ... ich denke dafür ist GUICtrlCreateTreeView() am besten geeignet!

    du hättest keine bessere Wahl treffen können

    Zitat von Crys

    Ich möchte das die Punkte 'Liste1' und 'Liste2' keine Checkbox haben und am besten auch nicht anklickbar sind ...

    dass einzelne Punkte keine CheckBox haben, andere aber schon ist meines Wissens nach nicht möglich. Dass einzelne Punkte nicht auswählbar sind, sollte zu schaffen sein ist aber meinen Erachtens nach unnötig. Sieh dir dazu TreeView-(Un)Checked-Example von Oscar an.

    Mir ist aufgefallen, dass du ControllTreeView verwendest. Die Funktionen in der GuiTreeView.au3 sind um einiges mächtiger. Versuche am besten das Skript von Oscar zu verstehen, schau dir die entsprechenden Befehle dazu in derHilfe an. Danach solltest du alle nötigen Befehle kennen um dein Problem zu lösen.

    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™