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

Beiträge von oetzn

  • UDF - VLC MEDIA PLAYER - OBJEKT

    • oetzn
    • 3. April 2010 um 17:53

    Hi leute,

    ich hab vorgestern zufällig entdeckt, dass man den VLC Media Player als Objekt einbinden kann oder wie auch immer man da sagt xD
    Also hab ich mal eine UDF geschrieben um diese Funktionen auch ordentlich nutzen zu können.

    Ist jetzt nicht wirklich etwas Atemberaubendes, da es hauptsächlich Schreibarbeit war, aber vielleicht kann es ja doch einmal wer benutzen :D

    Ein paar Funktionen fehlen noch bzw funktionieren noch nicht (unter anderem Lautstärke regeln, aktuellen Track auslesen, etc -.-)
    EDIT1: Ok, ich hab jetzt mal die UDF geupdated(t?), jetzt sollten alle derzeitigen Funktionen korrekt arbeiten!
    Man kann damit auch Videos wiedergeben, und ich werd mich später nochmal dransetzen und noch ein paar Video-Funktionen hinzufügen.
    EDIT2: Sorry aber es funktioniert bei mir im Moment das AutoIt-Highlighting nicht, jetzt hab ichs in einen ganz normalen Code-Tag gepackt.


    Hier die UDF:

    Spoiler anzeigen
    Code
    #include-Once
    
    
    ; #INDEX# =========================================================================================
    ; Title .........: VLC
    ; AutoIt Version : 3.3.6.0
    ; Language ..... : English
    ; Description ...: Functions to use the VideoLAN VLC ActiveX Plugin
    ; Author(s) .....: oetzn - autoit.de
    ; =================================================================================================
    
    
    ; #VARIABLES =====================================================================================
    Global Const $CLSID = "{9BE31822-FDAD-461B-AD51-BE1D1C159921}"
    Global $oError = _InitComErrFunc()
    Global $oVLC
    Global $oPlaylist
    Global $oAudio
    Global $oLog
    Global $oInput
    ; =================================================================================================
    
    
    ; #CURRENT# =======================================================================================
    ; _VLC_PlayItem
    ; _VLC_Play_Resume
    ; _VLC_Stop
    ; _VLC_ChangeItem
    ; _VLC_IsPlaying
    ; _VLC_RemoveItem
    ; _VLC_TogglePause
    ; _VLC_AddItem
    ; _VLC_GetPlayListCount
    ; _VLC_ClearPlayList
    ; _VLC_SetMuteState
    ; _VLC_GetMuteState
    ; _VLC_ToggleMute
    ; _VLC_Volume
    ; _VLC_GetTrack
    ; _VLC_ChannelState
    ; _VLC_Obj_Init
    ; _VLC_AutoPlayState
    ; _VLC_AutoLoopState
    ; _VLC_BaseURLState
    ; _VLC_GetCurVersion
    ; _VLC_GetPluginInfo
    ; _VLC_HasVout
    ; =================================================================================================
    
    
    ; #INTERNAL_USE_ONLY#==============================================================================
    ; __VLC_PlaylistObj
    ; __VLC_LogObj
    ; __VLC_AudioObj
    ; __VLC_InputObj
    ; _InitComErrFunc
    ; _ComErrorObj
    ; =================================================================================================
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_PlayItem
    ; Description ...: Plays an item in the Playlist (zero-based index)
    ; Syntax.........: _VLC_PlayItem(ByRef $oVLC, $iIndex)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; $iIndex - zero-based index of the item in the playlist
    ; Return values .: Success: 1 (if $oVLC is an object)
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_PlayItem(ByRef $oVLC, $iIndex)
    If IsObj($oVLC) Then
    $oPlaylist.playitem($iIndex)
    Return 1
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_PlayItem
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_Play_Resume
    ; Description ...: Plays/resumes the current track
    ; Syntax.........: _VLC_Play_Resume(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: 1 (if $oVLC is an object)
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_Play_Resume(ByRef $oVLC)
    If IsObj($oVLC) Then
    $oPlaylist.play
    Return 1
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_Play_Resume
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_Stop
    ; Description ...: Stops the current track
    ; Syntax.........: _VLC_Stop(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: 1 (if $oVLC is an object)
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_Stop(ByRef $oVLC)
    If IsObj($oVLC) Then
    $oPlaylist.stop
    Return 1
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_Stop
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_ChangeItem
    ; Description ...: Changes the item which should be played
    ; Syntax.........: _VLC_ChangeItem(ByRef $oVLC, $bNext = True)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; $bNext (optional) - True = next song will be played, False = previous song will be played
    ; Return values .: Success: 1 (if $oVLC is an object)
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_ChangeItem(ByRef $oVLC, $bNext = True)
    If IsObj($oVLC) Then
    Switch $bNext
    Case True
    $oPlaylist.Next
    Return 1
    
    
    Case False
    $oPlaylist.prev
    Return 1
    EndSwitch
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_ChangeItem
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_IsPlaying
    ; Description ...: Returns the current playing state
    ; Syntax.........: _VLC_IsPlaying(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success:
    ; True = Playing
    ; False = Not Playing
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_IsPlaying(ByRef $oVLC)
    If IsObj($oVLC) Then
    Return $oPlaylist.isPlaying
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_IsPlaying
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_RemoveItem
    ; Description ...: Removes an item from the playlist
    ; Syntax.........: _VLC_RemoveItem(ByRef $oVLC, $iItem)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; $iItem - zero-based index of the item to remove
    ; Return values .: Success: 1 (if $oVLC is an object)
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......: DOES NOT STOP THE MUSIC IF LAST ITEM IS REMOVED AND EVEN IF PLAYING ITEM IS REMOVED
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_RemoveItem(ByRef $oVLC, $iItem)
    If IsObj($oVLC) And IsInt($iItem) Then
    $oPlaylist.removeItem($iItem)
    Return 1
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_RemoveItem
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_TogglePause
    ; Description ...: Toggles the playing state; paused/playing
    ; Syntax.........: _VLC_TogglePause(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: 1 (if $oVLC is an object)
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_TogglePause(ByRef $oVLC)
    If IsObj($oVLC) Then
    $oPlaylist.togglePause
    Return 1
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_TogglePause
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_AddItem
    ; Description ...: Adds an item to the playlist
    ; Syntax.........: _VLC_AddItem(ByRef $oVLC, $sItem)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; $sItem - Path to the media file
    ; Return values .: Success: 1 (if $oVLC is an object)
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_AddItem(ByRef $oVLC, $sItem)
    If IsObj($oVLC) And IsString($sItem) Then
    $oPlaylist.add($sItem)
    Return 1
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_AddItem
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_GetPlayListCount
    ; Description ...: Returnes the current count of items in playlist
    ; Syntax.........: _VLC_GetPlayListCount(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: 1 (if $oVLC is an object)
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_GetPlayListCount(ByRef $oVLC)
    If IsObj($oVLC) Then
    Return $oPlaylist.itemCount
    Return 1
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_GetPlayListCount
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_ClearPlayList
    ; Description ...: Deletes all items from the playlist
    ; Syntax.........: _VLC_ClearPlayList(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: 1 (if $oVLC is an object)
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......: DOES NOT STOP THE MUSIC IF LAST ITEM IS REMOVED AND EVEN IF PLAYING ITEM IS REMOVED
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_ClearPlayList(ByRef $oVLC)
    If IsObj($oVLC) Then
    $oPlaylist.clear
    Return 1
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_ClearPlayList
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_SetMuteState
    ; Description ...: Sets the mute state
    ; Syntax.........: _VLC_ClearPlayList(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; $bMute - Boolean Variable (True = mute, False = unmute)
    ; Return values .: Success: 1 (if $oVLC is an object)
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_SetMuteState(ByRef $oVLC, $bMute)
    If IsObj($oVLC) And IsBool($bMute) Then
    Return $oAudio.mute = $bMute
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_SetMuteState
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_GetMuteState
    ; Description ...: Returns the current mute state
    ; Syntax.........: _VLC_GetMuteState(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success:
    ; True = muted
    ; False = unmuted
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_GetMuteState(ByRef $oVLC)
    If IsObj($oVLC) Then
    Return $oAudio.mute
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_GetMuteState
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_ToggleMute
    ; Description ...: Toggles the mute state
    ; Syntax.........: _VLC_ToggleMute(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: Returns nothing
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_ToggleMute(ByRef $oVLC)
    If IsObj($oVLC) Then
    Return $oAudio.toggleMute
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_ToggleMute
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_GetTrackLength
    ; Description ...: Returns the length of the current track
    ; Syntax.........: _VLC_GetPlaybackTime(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: Returns the length of the current track in millisecounds
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_GetTrackLength(ByRef $oVLC)
    If IsObj($oVLC) Then
    Return $oInput.Length
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_GetTrackLength
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_GetPlaybackTime
    ; Description ...: Returns the playback time of the current track
    ; Syntax.........: _VLC_GetPlaybackTime(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: Returns the playback time of the current track in millisecounds
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:playback time = time since the track has started playing
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_GetPlaybackTime(ByRef $oVLC)
    If IsObj($oVLC) Then
    Return $oInput.time
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_GetPlaybackTime
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_Volume
    ; Description ...: Sets/Gets the volume (Range 0-200)
    ; Syntax.........: _VLC_Volume(ByRef $oVLC, $iVolume, $bGet = True)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; $iVolume - Integer 0-200
    ; $bGet - (Optional) Boolean; True: Gets the volume, False: Sets the volume
    ; Return values .: Success:
    ; $bGet = True: The current volume
    ; $bGet = False: If you look for the return value (in a MsgBox) a comparison will be made between the current volume and $iVolume (Return True if the comparison matches and False if the values are different)
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_Volume(ByRef $oVLC, $iVolume, $bGet = True)
    If IsObj($oVLC) And IsInt($iVolume) And IsBool($bGet) Then
    Switch $bGet
    Case True
    Return $oAudio.volume
    
    
    Case False
    Return $oAudio.volume = $iVolume
    EndSwitch
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_Volume
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_GetTrack
    ; Description ...: Returns the current track index
    ; Syntax.........: _VLC_GetTrack(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: Returns the current track
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_GetTrack(ByRef $oVLC)
    If IsObj($oVLC) Then
    Return $oAudio.track
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_GetTrack
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_ChannelState
    ; Description ...: Returns/sets the channel
    ; Syntax.........: _VLC_ChannelState(ByRef $oVLC, $iChannelID, $iReturnType = "0", $sType = "GET")
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; $iChannelID - If $sType = "SET" Then this parameter indizes which channel should be used (see Remarks)
    ; $iReturnType - 0 OR 1, switches the return type; 0 returns just the number of the channel, 1 returns a string
    ; $sType - switches between returning or settings the channel
    ; Return values .: Success:
    ; If $sType = "GET" returns the current channel used
    ; If $sType = "SET" returns nothing
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......: If $sType = "GET" Then the parameter $iChannelID is ignored, if $sType = "SET" Then the parameter $iReturnType is ignored
    ; $iChannelID can be 1,2,3,4,5; 1 = stereo, 2 = reverse stereo, 3 = left, 4 = right, 5 = dolby
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_ChannelState(ByRef $oVLC, $iChannelID, $iReturnType = "0", $sType = "GET")
    If IsObj($oVLC) And IsInt($iChannelID) And IsInt($iReturnType) And IsString($sType) Then
    Switch $sType
    Case "GET"
    Switch $iReturnType
    Case 0
    Return $oAudio.channel
    
    
    Case 1
    Switch $oAudio.channel
    Case 1
    Return "stereo"
    Case 2
    Return "reverse stereo"
    Case 3
    Return "left"
    Case 4
    Return "right"
    Case 5
    Return "dolby"
    
    
    EndSwitch
    EndSwitch
    
    
    Case "SET"
    Return $oAudio.channel = $iChannelID
    
    
    Case Else
    Return -2
    EndSwitch
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_ChannelState
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_Obj_Init
    ; Description ...: Creates the VLC Object
    ; Syntax.........: _VLC_Obj_Init()
    ; Parameters ....:
    ; Return values .: Success: Returns the VLC Object and intializes 3 other necessary objects
    ; Failure: -1 if object could not be created
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_Obj_Init()
    $oVLC = ObjCreate("VideoLAN.VLCPlugin.2")
    If IsObj($oVLC) Then
    $oPlaylist = __VLC_PlaylistObj($oVLC)
    $oAudio = __VLC_AudioObj($oVLC)
    $oLog = __VLC_LogObj($oVLC)
    $oInput = __VLC_InputObj($oVLC)
    Return $oVLC
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_Obj_Init
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_GetCurVersion
    ; Description ...: Returns the version of the VLC plugin
    ; Syntax.........: _VLC_GetCurVersion(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: Returns the version
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_GetCurVersion(ByRef $oVLC)
    If IsObj($oVLC) Then
    Return $oVLC.VersionInfo
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_GetCurVersion
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_GetPluginInfo
    ; Description ...: Returns information about the plugin
    ; Syntax.........: _VLC_GetPluginInfo(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: Returns an 1D-array containing the information
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......:
    ; [0] = Name of the dispatch interface being used
    ; [1] = Description of the (document) Object
    ; [2] = The ProgID of the Object
    ; [3] = The DLL file from with the Object was created
    ; [4] = Filename and position of the toolbox icon
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_GetPluginInfo(ByRef $oVLC)
    Local $aInfo[5]
    If IsObj($oVLC) Then
    For $i = 1 To 5
    $aInfo[$i - 1] = ObjName($oVLC, $i)
    Next
    Return $aInfo
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_GetPluginInfo
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_AutoPlayState
    ; Description ...: Sets/Gets the autoplay state
    ; Syntax.........: _VLC_AutoPlayState(ByRef $oVLC, $bAutoPlay, $sType = "GET")
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success:
    ; If $sType = "GET" returns True if AutoPlay is enable, false if AutoPlay is disable
    ; If $sType = "SET" returns nothing
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......: If $sType is "GET the parameter $bAutoPlay is ignored
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_AutoPlayState(ByRef $oVLC, $bAutoPlay, $sType = "GET")
    If IsObj($oVLC) And IsBool($bAutoPlay) Then
    Switch $sType
    Case "GET"
    Return $oVLC.AutoPlay
    
    
    Case "SET"
    Return $oVLC.AutoPlay = $bAutoPlay
    EndSwitch
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_AutoPlayState
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_AutoLoopState
    ; Description ...: Sets/Gets the autoloop state
    ; Syntax.........: _VLC_AutoLoopState(ByRef $oVLC, $bAutoLoop, $sType = "GET")
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success:
    ; If $sType = "GET" returns True if Autoloop is enable, false if Autoloop is disable
    ; If $sType = "SET" returns nothing
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......: If $sType is "GET" the parameter $bAutoLoop is ignored
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_AutoLoopState(ByRef $oVLC, $bAutoLoop, $sType = "GET")
    If IsObj($oVLC) And IsBool($bAutoLoop) Then
    Switch $sType
    Case "GET"
    Return $oVLC.AutoLoop
    
    
    Case "SET"
    Return $oVLC.AutoLoop = $bAutoLoop
    EndSwitch
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_AutoLoopState
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_BaseURLState
    ; Description ...: Sets/Gets the base URL
    ; Syntax.........: _VLC_BaseURLState(ByRef $oVLC, $sPath, $sType = "GET")
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success:
    ; If $sType = "GET" returns the BASE URL
    ; If $sType = "SET" returns True if the current BASE URL is the same as $sPath and False if they are different, but the BASE URL will not be set if you look for the return value.
    ; If you look for the return value, a comparison will be made.
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......: If $sType is "GET" the parameter $sPath is ignored
    ; If no BaseURL was set, the function will return an empty string if asking for the BaseURL
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_BaseURLState(ByRef $oVLC, $sPath, $sType = "GET")
    If IsObj($oVLC) And IsString($sPath) And IsString($sType) Then
    Switch $sType
    Case "GET"
    Return $oVLC.BaseURL
    
    
    Case "SET"
    Return $oVLC.BaseURL = $sPath
    
    
    Case Else
    Return -2
    EndSwitch
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_BaseURLState
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name...........: _VLC_HasVout
    ; Description ...: Returns whether the current item displays a video
    ; Syntax.........: _VLC_HasVout(ByRef $oVLC)
    ; Parameters ....: $oVLC - Object Variable returned by _VLC_Obj_Init
    ; Return values .: Success: True = Video is displayed by item
    ; False = No Video is displayed by item
    ; Failure: -1 (if $oVLC is no object)
    ;
    ; Author ........: Thomas Eizinger (oetzn - autoit.de)
    ; Modified.......:
    ; Remarks .......: Requires a small Sleep(~500) if called immediately after _VLC_Play_Resume or _VLC_PlayItem, otherwise may return False even if a video is played
    ; Related .......:
    ; ===============================================================================================================================
    Func _VLC_HasVout(ByRef $oVLC)
    If IsObj($oVLC) Then
    Return $oInput.hasVout
    Else
    Return -1
    EndIf
    EndFunc ;==>_VLC_HasVout
    
    
    
    
    ; #INTERNAL_USE_ONLY#==============================================================================
    ; =================================================================================================
    
    
    Func __VLC_PlaylistObj(ByRef $oVLC)
    If IsObj($oVLC) Then Return $oVLC.playlist
    EndFunc ;==>__VLC_PlaylistObj
    
    
    Func __VLC_LogObj(ByRef $oVLC)
    If IsObj($oVLC) Then Return $oVLC.log
    EndFunc ;==>__VLC_LogObj
    
    
    Func __VLC_AudioObj(ByRef $oVLC)
    If IsObj($oVLC) Then Return $oVLC.audio
    EndFunc ;==>__VLC_AudioObj
    
    
    Func __VLC_InputObj(ByRef $oVLC)
    If IsObj($oVLC) Then Return $oVLC.input
    EndFunc ;==>__VLC_InputObj
    
    
    Func _InitComErrFunc()
    Global $g_eventerror = 0
    $oError = ObjEvent("AutoIt.Error", "_ComErrorObj")
    If IsObj($oError) Then Return $oError
    EndFunc ;==>_InitComErrFunc
    
    
    Func _ComErrorObj()
    MsgBox(48, "COM/OBJECT ERROR!", "Errorcode: 0x" & Hex($oError.number, 8) & @CRLF & _
    "Error in line: " & $oError.scriptline & @CRLF & _
    "Error describition: " & $oError.windescription)
    ;~ "$oError.lastdllerror: " & $oError.lastdllerror & @CRLF & _
    ;~ "$oError.description: " & $oError.description & @CRLF & _
    ;~ "$oError.helpfile: " & $oError.helpfile & @CRLF & _
    ;~ "$oError.source: " & $oError.source & @CRLF & _
    ;~ "$oError.helpcontext: " & $oError.helpcontext & @CRLF & _
    ;~ )
    $g_eventerror = 1
    EndFunc ;==>_ComErrorObj
    
    
    ; =================================================================================================
    ; =================================================================================================
    Alles anzeigen

    Viel Spaß : D

  • TCP - Bei jeder Communikation eine neue verbindung aufbauen???

    • oetzn
    • 3. April 2010 um 17:24

    ok, zu deinem Client:

    Wenn du mal genau schaust...

    Was macht er?
    Wenn er in der 2. While drinnen ist macht er folgendes: Er Empfängt ständig Daten und wenn das @error-Makro gesetzt wird, dann geht er aus der Schleife hinaus (@error wird gesetzt wenn die Verbindung unterbrochen wird zb TCPCloseSocket beim Server)

    und er DANN zeigt er an was der empfangen hat..

    ich schreib dir kurz ein BSP-Skript..

    EDIT:
    Hier ein kurzes BSP skript für einen Client:


    [autoit]

    ; CLIENT!!!

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

    $IP = '...'
    $PORT = '...'

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

    If MsgBox(4,"Verbinden?","Verbinden zu IP: " & $IP & ":" & $PORT & " ?") = 7 Then Exit

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

    TCPStartup()

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

    $SERVERSOCKET = TCPConnect($IP,$PORT)
    If $SERVERSOCKET = -1 Then
    MsgBox(48,"ERROR","Verbindung zu " & $IP & ":" & $PORT & " nicht möglich!" & @LF & "Listening Socket auf dem Server sicher vorhanden und gestartet?")
    Exit
    EndIf

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

    While 1
    $sMSG = InputBox("Nachricht","Was soll an den Server gesendet werden?" & @LF & "Abbrechen drücken um das Skript zu verlassen!") ; Nachricht eingeben dir geschickt werden soll
    If @error Then ExitLoop ; Abbrechen button wurde gedrückt
    If TCPSend($SERVERSOCKET,$sMSG) = 0 Then MsgBox(48,"ERROR","Daten konnten nicht an den Server verschickt werden!") ; Siehe Hilfe, TCPSend gibt 0 zurück falls erfolglos -> Errormeldung das die Daten nicht geschickt werden konnten
    Sleep(100) ; Um den Prozessor zu schonen, eigentlich nicht nötig, da die Inputbox die Schleife anhält
    WEnd
    TCPShutdown()

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

    und hier ein kurzes Server-BSP-Skript, hab eigentlich alles notwendige kommentiert, falls du was nicht verstehst einfach fragen:

    [autoit]

    ; SERVER!!!

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

    TCPStartup()

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

    $IP = @IPAddress1
    $PORT = '...'

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

    TrayTip("","Warte auf eingehende Verbindungen..",1)

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

    $MAINSOCKET = TCPListen($IP,$PORT) ; Listening socket erzeugen

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

    Do
    $TEMPSOCKET = TCPAccept($MAINSOCKET)
    Sleep(100)
    Until $TEMPSOCKET <> -1 ; Warten bis sich ein Client verbunden hat

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

    TrayTip("","CLIENT VERBUNDEN!",1)

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

    $MYCLIENTSOCKET = $TEMPSOCKET ; Socket umdefiniern (nicht zwingend notwendig)
    $TEMPSOCKET = ''

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

    While 1 ; Endlos-empfangs-schleife
    $TEMPRECV = TCPRecv($MYCLIENTSOCKET,8192) ; Probieren Daten zu empfangen
    If $TEMPRECV <> '' Then ; Falls erfolgreich, sprich Daten wurde empfangen -> Daten darstellen
    If MsgBox(4,"DATEN EMPFANGEN","Daten vom Client: " & @LF & $TEMPRECV & @LF & "Verbindung beenden?") = 6 Then ExitLoop ; Daten darstellen und gleichzeitig fragen, ob die Verbindung beendet werden soll
    ; Falls Verbindung beendet werden soll -> mit Exitloop aus schleife raus -> außerhalb von Schleife, Verbindung schließen und beenden
    EndIf
    Sleep(100)
    WEnd

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

    TCPCloseSocket($MYCLIENTSOCKET)
    TCPShutdown()

    [/autoit]


    Wichtig ist, dass du während des empfangens schon die Daten darstellst (MsgBox, TrayTip, Edit, Input was auch immer)MsgBox ist eigentlich nicht so gut, da es die Schleife anhält, es werden zwar Daten weiterhin empfangen, aber nicht sofort dargestellt. .

  • TCP - Bei jeder Communikation eine neue verbindung aufbauen???

    • oetzn
    • 3. April 2010 um 15:18

    um deine Frage zu beantworten:

    NEIN! muss man nicht..

    mit der Endlosschleife bist du schon nahe dran..

    Bau noch eine Inputbox ein, damit man auch bestimmen kann was gesendet wird und beim Server vl noch ein
    Switch - Endswitch mit dem was er empfängt..

  • CubeTimer 1.0

    • oetzn
    • 3. April 2010 um 14:53

    Sieht gut aus :D

    Mein Rekord liegt(lag) bei ca 45 Sec (Friedrichmethode ;) )
    Mein Bruder hat es einmal geschafft den Würfel in ca 28 Sekunden zu lösen :D
    [MSIE_newline_end ]

  • Programmdatenbank (SQLite)

    • oetzn
    • 2. April 2010 um 19:24

    Danke erstmal fürs Feedback.

    Das mit dem Startproblem beim 1. Start schau ich mir nochmal an, danke für den Hinweiß.

  • Programmdatenbank (SQLite)

    • oetzn
    • 2. April 2010 um 18:31

    Hi Leute,

    Ich weiß nicht, ob ihr das kennt aber bei mir ist es jedenfalls so. Ich hab in meinem Programmordner, wo ich alle meine Setup's etc sammle, zwar eine ganz gute Ordnung, aber oft kann ich aus dem Dateinamen nicht herauslesen, was den dieses Programm tut.
    Da hab ich mir gedacht, schreib doch eine Datenbank :D

    Spoiler anzeigen
    [autoit]


    #region INCLUDES & STUFF
    ; ### GUI-Includes ###
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ProgressConstants.au3>
    #include <ComboConstants.au3>
    #include <GuiCombobox.au3>
    #include <GuiComboBoxEx.au3>

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

    ; ### Other Includes ###
    #include <File.au3>
    #include <Array.au3>
    #include <GuiListView.au3>
    #include <SendMessage.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>

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

    #NoAutoIt3Execute

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

    ; ### OPT & REGISTER ###
    Opt("TrayAutoPause", 0)
    Opt("TrayMenuMode", 1)
    Opt("GuiOnEventMode", 1)
    Opt("TrayOnEventMode", 1)

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

    OnAutoItExitRegister("_Exit")

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

    AdlibRegister("_UpdateTime", 1000)

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

    _SQLite_Startup()

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

    $hFileList = _SQLite_Open("Filelist.db")
    If @error Then _SQLite_Err()

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

    ; ### VAR ###
    Global $aData[2][3]
    Global $aTemp[1]
    Global $aParts[3] = [200, 635, 30]
    Global $bAbort = False

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

    Global $iSearch
    Global $iSearchBackup
    Global $sQuery
    Global $iIndex
    Global $sRadioState
    Global $bCloseWindow
    Global $sLastComment
    Global $hFileList
    Global $sRetType
    Global $aRet

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

    Local $aResult, $iRows, $iColumns
    If Not _SQLite_GetTable2d(-1, "SELECT * FROM Settings;", $aResult, $iRows, $iColumns) = $SQLITE_OK Then
    If Not _SQLite_Exec($hFileList, "CREATE TABLE Settings (Type, Value);") = $SQLITE_OK Then
    $bAbort = True
    _SQLite_Err()
    EndIf
    _SQLite_Exec(-1,"INSERT INTO Settings values ('DBLCLICK','RUN'); INSERT INTO Settings values ('CLOSEWND','FALSE');") ; buggy
    EndIf

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

    If _SQLite_GetTable2d(-1, "SELECT * FROM Settings WHERE Type='DBLCLICK';", $aResult, $iRows, $iColumns) = $SQLITE_OK Then $sRadioState = $aResult[1][1]
    If _SQLite_GetTable2d(-1, "SELECT * FROM Settings WHERE Type='CLOSEWND';", $aResult, $iRows, $iColumns) = $SQLITE_OK Then $bCloseWindow = $aResult[1][1]

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

    #endregion INCLUDES & STUFF

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

    #region ### GUI ###

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

    $hMain = GUICreate("Programmdatenbank", 692, 378, 203, 126)
    $ListView1 = GUICtrlCreateListView("Dateiname|Pfad|Beschreibung|Größe", 8, 64, 538, 286)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 250)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 50)
    $Group1 = GUICtrlCreateGroup("Funktionen ", 552, 64, 137, 145)
    $ButtonAddEntry = GUICtrlCreateButton("Eintrag hinzufügen", 560, 112, 123, 25, $WS_GROUP)
    $ButtonDelEntry = GUICtrlCreateButton("Eintrag löschen", 560, 176, 123, 25, $WS_GROUP)
    $ButtonOpenAddFolderGui = GUICtrlCreateButton("Ordner hinzufügen", 560, 80, 123, 25, $WS_GROUP)
    $ButtonChangeDesc = GUICtrlCreateButton("Details", 560, 144, 123, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Suchfeld ", 8, 8, 681, 49)
    $InputSearchMain = GUICtrlCreateInput("", 16, 24, 409, 21)
    $ButtonSearchMain = GUICtrlCreateButton("Suchen", 432, 24, 123, 25, $WS_GROUP)
    $ButtonNextResult = GUICtrlCreateButton("Nächstes Ergebnis", 560, 24, 123, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group3 = GUICtrlCreateGroup("Programmfunktionen ", 552, 216, 137, 81)
    $ButtonRunFile = GUICtrlCreateButton("Starten", 560, 232, 123, 25, $WS_GROUP)
    $Button10 = GUICtrlCreateButton("Einstellungen", 560, 264, 123, 25)
    GUICtrlSetOnEvent(-1, "_Settings")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group4 = GUICtrlCreateGroup("Andere Funktionen ", 552, 304, 137, 49)
    $ButtonExit = GUICtrlCreateButton("Beenden", 560, 320, 123, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    $hDesc = GUICreate("Beschreibung ändern", 385, 297, 202, 129)
    $Group1 = GUICtrlCreateGroup("Daten", 8, 8, 273, 185)
    $LabelFileName = GUICtrlCreateLabel("Dateiname:", 16, 24, 61, 17)
    $InputFileName = GUICtrlCreateInput("", 16, 40, 129, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    $LabelFilePath = GUICtrlCreateLabel("Dateipfad:", 16, 64, 53, 17)
    $InputFilePath = GUICtrlCreateInput("", 16, 80, 257, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    $LabelFileDesc = GUICtrlCreateLabel("Beschreibung:", 16, 104, 72, 17)
    $InputFileDesc = GUICtrlCreateEdit("", 16, 128, 257, 57, $ES_WANTRETURN)
    GUICtrlSetData(-1, "")
    $LabelFileSizeDesc = GUICtrlCreateLabel("Dateigröße: (MB)", 152, 24, 83, 17)
    $InputFileSizeDesc = GUICtrlCreateInput("", 152, 40, 121, 21, BitOR($ES_AUTOHSCROLL, $ES_READONLY))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Aktionen", 288, 8, 89, 121)
    $ButtonSaveDesc = GUICtrlCreateButton("Speichern", 296, 24, 75, 30, $WS_GROUP)
    $ButtonDelEntry_Desc = GUICtrlCreateButton("Löschen", 296, 88, 75, 30, $WS_GROUP)
    $ButtonAbort = GUICtrlCreateButton("Abbrechen", 296, 56, 75, 30, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $ButtonRunFileDesc = GUICtrlCreateButton("STARTEN", 288, 136, 89, 57, $WS_GROUP)
    $Group4 = GUICtrlCreateGroup("Element auswählen", 8, 200, 369, 89)
    $Combo1 = GUICtrlCreateCombo("", 16, 216, 273, 30)
    $ButtonNextEntry = GUICtrlCreateButton("Nächstes", 296, 216, 75, 30, $WS_GROUP)
    $ButtonPrevEntry = GUICtrlCreateButton("Vorheriges", 296, 248, 75, 30, $WS_GROUP)
    $InputSearchDesc = GUICtrlCreateInput("", 16, 254, 193, 21, BitOR($ES_CENTER, $ES_AUTOHSCROLL))
    $ButtonSearchDesc = GUICtrlCreateButton("Suchen", 216, 248, 75, 30, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)

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

    $hAddFolder = GUICreate("Ordner hinzufügen", 377, 220, 190, 124)
    $Group1 = GUICtrlCreateGroup("Pfad ", 8, 8, 361, 49)
    $InputFolderPath = GUICtrlCreateInput("", 16, 24, 257, 21)
    $ButtonSelectFolder = GUICtrlCreateButton("Durchsuchen", 280, 22, 83, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Optionen (Derzeit deaktiviert)", 8, 64, 361, 113)
    $CheckboxExludeFiles = GUICtrlCreateCheckbox("Dateien ausschließen", 16, 80, 129, 17)
    $LabelFileExtensions = GUICtrlCreateLabel("Datenendungen: ", 16, 104, 87, 17)
    $InputFileTypes = GUICtrlCreateInput("", 104, 100, 145, 21)
    GUICtrlSetTip(-1, "Verschiedene Dateitypen mit '|' trennen.")
    $Label1FileSize = GUICtrlCreateLabel("Datei muss ", 16, 128, 59, 17)
    $ComboFileCompareType = GUICtrlCreateCombo("", 80, 124, 49, 25)
    GUICtrlSetData(-1, ">|<|=")
    $InputFileSize = GUICtrlCreateInput("", 136, 124, 113, 21, BitOR($ES_AUTOHSCROLL, $ES_NUMBER))
    $ComboFileSize = GUICtrlCreateCombo("", 256, 124, 73, 25)
    GUICtrlSetData(-1, "Byte|Kilobyte|Megabyte|Gigabyte")
    $Label2FileSize = GUICtrlCreateLabel("sein", 336, 128, 23, 17)
    $Label1NotAllowedChar = GUICtrlCreateLabel("Darf ", 16, 152, 27, 17)
    $InputNotAllowedChar = GUICtrlCreateInput("", 48, 148, 201, 21)
    GUICtrlSetTip(-1, "Mehrere Phrasen mit '|' trennen.")
    $Label2NotAllowedChar = GUICtrlCreateLabel("nicht enthalten", 256, 152, 74, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $ButtonAddFolder = GUICtrlCreateButton("Ordner hinzufügen", 8, 184, 363, 30, $WS_GROUP)

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

    $hSettings = GUICreate("Einstellungen", 209, 120, 206, 145)
    $Group1 = GUICtrlCreateGroup("Items", 8, 0, 193, 89)
    $Label1 = GUICtrlCreateLabel("Aktion bei Doppelklick in Listview:", 16, 16, 168, 17)
    $RadioRunProgramm = GUICtrlCreateRadio("Programm starten", 16, 40, 113, 17)
    $RadioShowDetails = GUICtrlCreateRadio("Details anzeigen", 16, 64, 113, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $CheckboxCloseAfterSave = GUICtrlCreateCheckbox("Detail-GUI nach Speichern schließen", 8, 96, 193, 17)

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

    ; 1. GUI
    GUICtrlSetOnEvent($ButtonAddEntry, "_AddEntry")
    GUICtrlSetOnEvent($ButtonDelEntry, "_DeleteEntry")
    GUICtrlSetOnEvent($ButtonOpenAddFolderGui, "_AddFolderGui")
    GUICtrlSetOnEvent($ButtonChangeDesc, "_ChangeDesc")
    GUICtrlSetOnEvent($ButtonSearchMain, "_Search")
    GUICtrlSetOnEvent($ButtonNextResult, "_Next")
    GUICtrlSetOnEvent($ButtonRunFile, "_Run")
    GUICtrlSetOnEvent($ButtonExit, "_Exit")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $hMain)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    ; 2.GUI
    GUICtrlSetOnEvent($ButtonSearchDesc, "_hDescSearch")
    GUICtrlSetOnEvent($ButtonSaveDesc, "_SaveDesc")
    GUICtrlSetOnEvent($ButtonDelEntry_Desc, "_DeleteEntry")
    GUICtrlSetOnEvent($ButtonAbort, "_ChangeDesc")
    GUICtrlSetOnEvent($ButtonRunFileDesc, "_Run")
    GUICtrlSetOnEvent($Combo1, "_SelElement")
    GUICtrlSetOnEvent($ButtonNextEntry, "_ChangeElement")
    GUICtrlSetOnEvent($ButtonPrevEntry, "_ChangeElement")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_ChangeDesc", $hDesc)
    ; 3.GUI
    GUICtrlSetOnEvent($ButtonSelectFolder, "_FileSelectFolder")
    GUICtrlSetOnEvent($CheckboxExludeFiles, "_ExcludeFiles")
    GUICtrlSetOnEvent($ButtonAddFolder, "_AddFolder")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_AddFolderGui", $hAddFolder)
    GUICtrlSetState($CheckboxExludeFiles, $GUI_DISABLE)
    GUICtrlSetState($InputFileTypes, $GUI_DISABLE)
    GUICtrlSetState($ComboFileSize, $GUI_DISABLE)
    GUICtrlSetState($InputFileSize, $GUI_DISABLE)
    GUICtrlSetState($ComboFileCompareType, $GUI_DISABLE)
    GUICtrlSetState($InputNotAllowedChar, $GUI_DISABLE)
    GUICtrlSetState($LabelFileExtensions, $GUI_DISABLE)
    GUICtrlSetState($Label1FileSize, $GUI_DISABLE)
    GUICtrlSetState($Label2FileSize, $GUI_DISABLE)
    GUICtrlSetState($Label1NotAllowedChar, $GUI_DISABLE)
    GUICtrlSetState($Label2NotAllowedChar, $GUI_DISABLE)
    ; 4.GUI
    Switch $sRadioState
    Case "RUN"
    GUICtrlSetState($RadioRunProgramm, $GUI_CHECKED)
    Case "SHOWDETAILS"
    GUICtrlSetState($RadioShowDetails, $GUI_CHECKED)
    EndSwitch

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

    Switch $bCloseWindow
    Case True
    GUICtrlSetState($CheckboxCloseAfterSave, $GUI_CHECKED)
    Case False
    GUICtrlSetState($CheckboxCloseAfterSave, $GUI_UNCHECKED)
    EndSwitch
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Settings", $hSettings)
    #endregion ### GUI ###

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

    #region STATUSBAR

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

    $hStatusBar1 = _GUICtrlStatusBar_Create($hMain)
    _GUICtrlStatusBar_SetParts($hStatusBar1, $aParts)
    _Status("Bereit")
    $Progress1 = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_MARQUEE)
    GUICtrlSetData($Progress1, 0)
    $hProgress = GUICtrlGetHandle($Progress1)
    _GUICtrlStatusBar_EmbedControl($hStatusBar1, 1, $hProgress)
    _UpdateTime()

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

    Global $hListView1 = GUICtrlGetHandle($ListView1)
    Global $hCombo1 = GUICtrlGetHandle($Combo1)
    #endregion STATUSBAR

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

    #region MAIN PROGRAMM

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

    GUICtrlSetState($InputSearchMain, $GUI_FOCUS)

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

    GUISetState(@SW_SHOW, $hMain)

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

    _ReadSQLiteDB()

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

    #endregion MAIN PROGRAMM

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

    While 1
    Sleep(100)
    WEnd

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

    #region ############################## ################ ##############################
    #region ############################## SQLITE FUNCTIONS ##############################
    #region ############################## ################ ##############################

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

    Func _ReadSQLiteDB()
    Local $aData, $iRows, $iColumns
    If Not _SQLite_GetTable2d(-1, "SELECT * FROM Programms;", $aData, $iRows, $iColumns) = $SQLITE_OK Then
    If Not _SQLite_Exec($hFileList, "CREATE TABLE Programms (Name, Path, Comment, Size);") = $SQLITE_OK Then
    $bAbort = True
    _SQLite_Err()
    EndIf
    EndIf
    _GUICtrlListView_DeleteAllItems($hListView1)
    _GUICtrlListView_AddArray($hListView1, $aData)
    _GUICtrlListView_DeleteItem($hListView1, 0)
    EndFunc ;==>_ReadSQLiteDB

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

    Func _SQLite_Err($bExit = True)
    MsgBox(16, "SQLite Error", _SQLite_ErrMsg())
    If $bExit Then Exit
    EndFunc ;==>_SQLite_Err

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

    #endregion ############################## ################ ##############################

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

    #region ############################## ################ ##############################
    #region ############################## ADDING FUNCTIONS ##############################
    #region ############################## ################ ##############################

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

    Func _FileSelectFolder()
    $sFolder = FileSelectFolder("Bitte Ordner auswählen", "", 2, Default, $hMain)
    If $sFolder = "" Then Return
    GUICtrlSetData($InputFolderPath, $sFolder)
    WinActivate(_WinAPI_GetWindowText($hAddFolder))
    EndFunc ;==>_FileSelectFolder

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

    Func _ExcludeFiles()
    If GUICtrlRead($CheckboxExludeFiles) = 1 Then
    GUICtrlSetState($InputFileTypes, $GUI_ENABLE)
    GUICtrlSetState($ComboFileSize, $GUI_ENABLE)
    GUICtrlSetState($InputFileSize, $GUI_ENABLE)
    GUICtrlSetState($ComboFileCompareType, $GUI_ENABLE)
    GUICtrlSetState($InputNotAllowedChar, $GUI_ENABLE)
    GUICtrlSetState($LabelFileExtensions, $GUI_ENABLE)
    GUICtrlSetState($Label1FileSize, $GUI_ENABLE)
    GUICtrlSetState($Label2FileSize, $GUI_ENABLE)
    GUICtrlSetState($Label1NotAllowedChar, $GUI_ENABLE)
    GUICtrlSetState($Label2NotAllowedChar, $GUI_ENABLE)
    Else
    GUICtrlSetState($InputFileTypes, $GUI_DISABLE)
    GUICtrlSetState($ComboFileSize, $GUI_DISABLE)
    GUICtrlSetState($InputFileSize, $GUI_DISABLE)
    GUICtrlSetState($ComboFileCompareType, $GUI_DISABLE)
    GUICtrlSetState($InputNotAllowedChar, $GUI_DISABLE)
    GUICtrlSetState($LabelFileExtensions, $GUI_DISABLE)
    GUICtrlSetState($Label1FileSize, $GUI_DISABLE)
    GUICtrlSetState($Label2FileSize, $GUI_DISABLE)
    GUICtrlSetState($Label1NotAllowedChar, $GUI_DISABLE)
    GUICtrlSetState($Label2NotAllowedChar, $GUI_DISABLE)
    EndIf
    EndFunc ;==>_ExcludeFiles

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

    Func _AddFolderGui()
    Switch _WinAPI_IsWindowVisible($hAddFolder)
    Case True
    GUISetState(@SW_HIDE, $hAddFolder)

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

    Case False
    GUISetState(@SW_SHOW, $hAddFolder)
    EndSwitch
    EndFunc ;==>_AddFolderGui

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

    Func _AddFolder()
    Local $aDataRawNew[1]
    Local $szDrive, $szDir, $szFName, $szExt, $sPercGes, $sQuery
    Local $sFolder = GUICtrlRead($InputFolderPath)
    Local $sFileExtentions = GUICtrlRead($InputFileTypes)
    Local $sFileCompareType = GUICtrlRead($ComboFileCompareType)
    Local $sFileSize = GUICtrlRead($InputFileSize)
    Local $sFileSizeType = GUICtrlRead($ComboFileSize)
    Local $sNotAllowedChar = GUICtrlRead($InputNotAllowedChar)

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

    If GUICtrlRead($CheckboxExludeFiles) = 1 And ($sFileCompareType = "" Or $sFileSize = "" Or $sFileSizeType = "") Then
    MsgBox(48, "Fehler", "Bitte die Felder zur Größenangabe ausfüllen!")
    Return
    EndIf
    Switch $sFileSizeType
    Case "Byte"
    $sDivisor = "*1"
    Case "Megabyte"
    $sDivisor = "*1048576"
    Case "Kilobyte"
    $sDivisor = "*1024"
    Case "Gigabyte"
    $sDivisor = "*1073741824"
    EndSwitch
    If $sFolder = "" Or Not FileExists($sFolder) Then Return
    _AddFolderGui()
    _Status("Ordner wird durchsucht")
    _SendMessage($hProgress, $PBM_SETMARQUEE, True, 10)
    $aDataRawNew = _GetFilesFolder_Rekursiv($sFolder, "exe|zip|rar|7z|tar|gz|bz2", 0)
    $sPerc = 100 / (UBound($aDataRawNew) - 1)
    For $i = 1 To UBound($aDataRawNew) - 1
    ReDim $aData[UBound($aData) + 1][3]
    $aTempPath = _PathSplit($aDataRawNew[$i], $szDrive, $szDir, $szFName, $szExt)
    If GUICtrlRead($CheckboxExludeFiles) = 1 Then
    If Not StringInStr($aTempPath[3] & $aTempPath[4], $sNotAllowedChar, 1) And Execute(FileGetSize($aDataRawNew[$i]) & " " & $sFileCompareType & " " & Execute($sFileSize & $sDivisor)) = True And Not StringInStr($sFileExtentions, $aTempPath[4], 1) = 1 Then _SQLite_Exec(-1, "INSERT INTO Programms values ('" & $aTempPath[3] & $aTempPath[4] & "','" & $aTempPath[0] & "','Keine Beschreibung angegeben!'," & "'" & Round(FileGetSize($aTempPath[0]) / 1048576, 3) & "');")
    Else
    ;~ $sQuery &= "INSERT INTO Programms values ('" & $aTempPath[3] & $aTempPath[4] & "','" & $aTempPath[0] & "','Keine Beschreibung angegeben!'," & "'" & Round(FileGetSize($aTempPath[0]) / 1048576, 3) & "');"
    _SQLite_Exec(-1, "INSERT INTO Programms values ('" & $aTempPath[3] & $aTempPath[4] & "','" & $aTempPath[0] & "','Keine Beschreibung angegeben!'," & "'" & Round(FileGetSize($aTempPath[0]) / 1048576, 3) & "');")
    EndIf
    $sPercGes += $sPerc
    _Status("Einträge schreiben: " & Round($sPercGes, 0) & "%")
    Next
    _ReadSQLiteDB()
    _Status("Bereit")
    EndFunc ;==>_AddFolder

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

    Func _AddEntry()
    Local $szDrive, $szDir, $szFName, $szExt

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

    $sNewEntry = FileOpenDialog("Neue Datei hinzufügen", Default, "Zugelassene Dateien (*.exe;*.7z;*.zip;*.rar)")
    If @error Then Return
    ReDim $aData[UBound($aData) + 1][3]
    $aTempPath = _PathSplit($sNewEntry, $szDrive, $szDir, $szFName, $szExt)
    _SQLite_Exec(-1, "INSERT INTO Programms values ('" & $aTempPath[3] & $aTempPath[4] & "','" & $aTempPath[0] & "','Keine Beschreibung angegeben!'," & "'" & Round(FileGetSize($aTempPath[0]) / 1048576, 3) & "');")
    _ReadSQLiteDB()
    EndFunc ;==>_AddEntry
    #endregion ############################## ################ ##############################

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

    #region ############################## ################ ##############################
    #region ############################## DETAIL FUNCTIONS ##############################
    #region ############################## ################ ##############################

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

    Func _ChangeElement()
    Switch @GUI_CtrlId
    Case $ButtonNextEntry
    _GUICtrlComboBox_SetCurSel($hCombo1, _GUICtrlComboBox_GetCurSel($hCombo1) + 1)
    Case $ButtonPrevEntry
    _GUICtrlComboBox_SetCurSel($hCombo1, _GUICtrlComboBox_GetCurSel($hCombo1) - 1)
    Case Else
    _GUICtrlComboBox_SetCurSel($hCombo1, _GUICtrlComboBox_GetCurSel($hCombo1) + 1)
    EndSwitch
    _SelElement()
    EndFunc ;==>_ChangeElement

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

    Func _SelElement()
    Local $sNewEntryMarked = GUICtrlRead($Combo1), $aResult[1], $iRows, $iColumns
    If $sNewEntryMarked <> "" Then
    _SQLite_GetTable2d(-1, "SELECT * FROM Programms Where Name='" & $sNewEntryMarked & "'", $aResult, $iRows, $iColumns)
    GUICtrlSetData($InputFileName, $aResult[1][0])
    GUICtrlSetData($InputFilePath, $aResult[1][1])
    GUICtrlSetData($InputFileDesc, $aResult[1][2])
    GUICtrlSetData($InputFileSizeDesc, $aResult[1][3])
    EndIf
    EndFunc ;==>_SelElement

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

    Func _ChangeDesc($iIndex = -1)
    Local $sFileNames, $aResult[1], $iRows, $iColumns
    If _WinAPI_IsWindowVisible($hDesc) = True Then
    GUISetState(@SW_HIDE, $hDesc)
    GUICtrlSetState($InputSearchMain, $GUI_FOCUS)
    Return
    Else
    GUISetState(@SW_SHOW, $hDesc)
    EndIf

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

    If Not IsDeclared($iIndex) Then $iIndex = -1
    $aTemp = _GUICtrlListView_GetItemTextArray($hListView1, $iIndex)
    If $aTemp[1] = "" Then
    _ChangeDesc()
    Return
    EndIf

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

    _SQLite_GetTable2d(-1, "SELECT Name FROM Programms", $aResult, $iRows, $iColumns)

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

    For $iTemp = 1 To UBound($aResult, 1) - 1
    $sFileNames &= "|" & $aResult[$iTemp][0]
    Next

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

    GUICtrlSetData($Combo1, $sFileNames)

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

    _SQLite_GetTable2d(-1, "SELECT * FROM Programms Where Name='" & $aTemp[1] & "'", $aResult, $iRows, $iColumns, -1, True)

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

    GUICtrlSetData($InputFileName, $aResult[0][1])
    GUICtrlSetData($InputFilePath, $aResult[1][1])
    GUICtrlSetData($InputFileDesc, $aResult[2][1])
    GUICtrlSetData($InputFileSizeDesc, $aResult[3][1])

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

    $sTemp = GUICtrlRead($InputFileName)
    $aTempList = _GUICtrlComboBox_GetListArray($Combo1)
    For $iTemp = 1 To $aTempList[0]
    If StringInStr($aTempList[$iTemp], $sTemp, 1) Then ExitLoop
    Next
    _GUICtrlComboBox_SetCurSel($hCombo1, $iTemp - 1)
    EndFunc ;==>_ChangeDesc

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

    Func _SaveDesc()
    Local $sTempName = GUICtrlRead($InputFileName)
    Local $sTempDesc = GUICtrlRead($InputFileDesc)
    If StringLen($sTempDesc) = 0 Then Return
    _SQLite_Exec(-1, "UPDATE Programms SET Comment='" & $sTempDesc & "' WHERE Name='" & $sTempName & "';")
    _ReadSQLiteDB()
    If BitAND(GUICtrlRead($CheckboxCloseAfterSave), $GUI_CHECKED) = $GUI_CHECKED Then _ChangeDesc()
    EndFunc ;==>_SaveDesc
    #endregion ############################## ################ ##############################

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

    #region ############################## ################ ##############################
    #region ############################## SEARCH FUNCTIONS ##############################
    #region ############################## ################ ##############################

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

    Func _hDescSearch()
    $sQuery = GUICtrlRead($InputSearchDesc)
    If $sQuery = "" Or @error Then Return
    $iSearch = _GUICtrlComboBox_FindString($hCombo1, $sQuery)
    If $iSearch <> -1 Then
    _GUICtrlComboBox_SetCurSel($hCombo1, $iSearch)
    _SelElement()
    Else
    MsgBox(48, "Fehler", "Kein passender Eintrag gefunden!")
    EndIf
    EndFunc ;==>_hDescSearch

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

    Func _Search()
    $sQuery = GUICtrlRead($InputSearchMain)
    If $sQuery = "" Or @error Then Return
    _Status("Suchvorgang läuft")
    _SendMessage($hProgress, $PBM_SETMARQUEE, True, 10)
    For $iSearch = 0 To _GUICtrlListView_GetItemCount($hListView1)
    $aTemp = _GUICtrlListView_GetItemTextArray($hListView1, $iSearch)
    $sTemp = _ArrayToString($aTemp, "|", 1, 3)
    If StringInStr($sTemp, $sQuery, 2) <> 0 Then ExitLoop
    Next
    If $iSearch = _GUICtrlListView_GetItemCount($hListView1) Then
    MsgBox(48, "Fehler", "Kein passender Eintrag gefunden!")
    _Status("Kein Ergebnis gefunden - Bereit")
    Else
    _GUICtrlListView_SetItemSelected($hListView1, $iSearch, True, True)
    _Status("Ergebnis gefunden - Bereit")
    _GUICtrlListView_ClickItem($hListView1, $iSearch)
    $iSearchBackup = $iSearch
    EndIf
    _SendMessage($hProgress, $PBM_SETMARQUEE, False, 10)
    GUICtrlSetState($ButtonNextResult, $GUI_FOCUS)
    EndFunc ;==>_Search

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

    Func _Next()
    Switch $iSearchBackup
    Case 0
    MsgBox(48, "Fehler", "Bitte zuerst einen Suchvorgang ausführen!")
    Return
    Case Else
    If $sQuery <> GUICtrlRead($InputSearchMain) Then
    MsgBox(48, "Error", "Der Suchbegriff hat sich geändert!")
    Return
    Else
    _Status("Suchvorgang läuft")
    _SendMessage($hProgress, $PBM_SETMARQUEE, True, 10)
    For $iTemp = $iSearchBackup + 1 To _GUICtrlListView_GetItemCount($hListView1)
    $aTemp = _GUICtrlListView_GetItemTextArray($hListView1, $iTemp)
    $sTemp = _ArrayToString($aTemp, "|", 1, 3)
    If StringInStr($sTemp, $sQuery, 2) <> 0 Then ExitLoop
    Next
    If $iTemp = _GUICtrlListView_GetItemCount($hListView1) Then
    MsgBox(48, "Fehler", "Kein passender Eintrag gefunden!")
    _Status("Kein Ergebnis gefunden - Bereit")
    Else
    _GUICtrlListView_SetItemSelected($hListView1, $iTemp, True, True)
    _Status("Ergebnis gefunden - Bereit")
    _GUICtrlListView_ClickItem($hListView1, $iTemp)
    $iSearchBackup = $iTemp
    EndIf
    _SendMessage($hProgress, $PBM_SETMARQUEE, False, 10)
    EndIf
    EndSwitch
    EndFunc ;==>_Next

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

    #endregion ############################## ################ ##############################

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

    #region ############################## ############### ###############################
    #region ############################## ENTRY FUNCTIONS ###############################
    #region ############################## ############### ###############################

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

    Func _Run()
    Switch @GUI_CtrlId
    Case $ButtonRunFileDesc
    $aTemp = _GUICtrlComboBoxEx_GetItem($hCombo1, _GUICtrlComboBoxEx_GetCurSel($hCombo1))
    $aTempList = _GUICtrlComboBox_GetListArray($Combo1)
    For $iTemp = 1 To $aTempList[0]
    If StringInStr($aTempList[$iTemp], $aTemp[0], 1) Then ExitLoop
    Next
    $iIndex = $iTemp - 1
    Case $ButtonRunFile
    $iIndex = -1
    EndSwitch

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

    $aTemp = _GUICtrlListView_GetItemTextArray($hListView1, $iIndex)
    ShellExecute($aTemp[2])
    EndFunc ;==>_Run

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

    Func _DeleteEntry()
    If MsgBox(48 + 4, "Achtung!", "Wollen Sie dieses Element wirklich löschen?") = 6 Then
    $aTemp = _GUICtrlListView_GetItemTextArray($hListView1)
    _SQLite_Exec(-1, "DELETE FROM Programms Where Path='" & $aTemp[2] & "';")
    If WinActive(_WinAPI_GetWindowText($hDesc)) Then _ChangeElement()
    _ReadSQLiteDB()
    EndIf
    EndFunc ;==>_DeleteEntry
    #endregion ############################## ############### ###############################

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

    #region ############################## ############### ###############################
    #region ############################## OTHER FUNCTIONS ###############################
    #region ############################## ############### ###############################

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

    Func _Exit()
    OnAutoItExitUnregister("_Exit")
    _SQLite_Close($hFileList)
    _SQLite_Shutdown()
    Exit
    EndFunc ;==>_Exit

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

    Func _Settings()
    Switch _WinAPI_IsWindowVisible($hSettings)
    Case True
    GUISetState(@SW_HIDE, $hSettings)
    Select
    Case BitAND(GUICtrlRead($RadioRunProgramm), $GUI_CHECKED) = $GUI_CHECKED
    $sRadioState = "RUN"
    Case BitAND(GUICtrlRead($RadioShowDetails), $GUI_CHECKED) = $GUI_CHECKED
    $sRadioState = "SHOWDETAILS"
    Case Bitand(GUICtrlRead($CheckboxCloseAfterSave), $GUI_CHECKED) = $GUI_CHECKED
    $bCloseWindow = True
    Case Bitand(GUICtrlRead($CheckboxCloseAfterSave), $GUI_CHECKED) <> $GUI_CHECKED
    $bCloseWindow = False
    EndSelect
    _SQLite_Exec(-1,"UPDATE Settings SET Value='" & $sRadioState & "' WHERE Type='DBLCLICK';")
    _SQLite_Exec(-1,"UPDATE Settings SET Value='" & $bCloseWindow & "' WHERE Type='CLOSEWND';")

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

    Case False
    GUISetState(@SW_SHOW, $hSettings)
    EndSwitch
    EndFunc ;==>_Settings

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

    Func _UpdateTime()
    _GUICtrlStatusBar_SetText($hStatusBar1, @HOUR & ":" & @MIN & ":" & @SEC, 2)
    EndFunc ;==>_UpdateTime

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

    Func _Status($sText)
    _GUICtrlStatusBar_SetText($hStatusBar1, $sText)
    EndFunc ;==>_Status

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $ListView1
    If Not IsHWnd($ListView1) Then $hWndListView = GUICtrlGetHandle($ListView1)
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    If $hWndFrom = $hWndListView And $iCode = $NM_DBLCLK Then
    $iIndex = ((DllStructGetData(DllStructCreate($tagNMITEMACTIVATE, $ilParam), "Index")))
    Switch $sRadioState

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

    Case "RUN"
    $aTemp = _GUICtrlListView_GetItemTextArray($hListView1, $iIndex)
    If ShellExecute($aTemp[2]) = 0 Then MsgBox(48, "Fehler", "Konnte Programm(" & $aTemp[1] & ") nicht starten!")
    Case "SHOWDETAILS"
    _ChangeDesc($iIndex)
    EndSwitch
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY
    #endregion ############################## ############### ###############################

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

    #region ##############################################################################
    #region ##############################################################################
    #region ###############################################################################

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

    ; ### Funktion von mir leicht verändert, um nach mehrerern Dateiendungen suchen zu können ###

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

    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Rekursive Auflistung von Dateien und/oder Ordnern
    ; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
    ; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
    ; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
    ; optional: $iRetType 0 gibt Array, 1 gibt String zurück
    ; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
    ; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
    ; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ; Modified: oetzn
    ;==================================================================================================
    Func _GetFilesFolder_Rekursiv($sPath, $sExt = '*', $iDir = -1, $iRetType = 0, $sDelim = '0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case '3'
    $sDelim = ';'
    Case '4'
    $sDelim = '|'
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath), $sExt, $iDir, $sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    Return $aOut
    Else
    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc ;==>_GetFilesFolder_Rekursiv

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

    Func _ShowSubFolders($Folder, $Ext = '*', $Dir = -1, $Delim = @CRLF)
    $aExt = StringSplit($Ext, "|", 2) ;von mir eingefügt
    If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    For $i = 0 To UBound($aExt) - 1 ;von mir eingefügt
    If StringRight($file.Name, StringLen($aExt[$i])) = $aExt[$i] Then _ ; $Ext in $Ext[$i] geändert
    $strFiles &= $file.Path & $Delim
    Next ;von mir eingefügt
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc ;==>_ShowSubFolders
    #endregion ###############################################################################

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

    Würde mich freuen, wenn ihr sie vielleicht mal testet, bzw mir sagt, ob sie euch gefällt oder was man noch verbessern/optimieren könnte, sowohl Bedien- als auch Programmiertechnisch .

    5. Mai 2010: UMSTIEG AUF SQLITE DATENBANK SYSTEM

    Behobene Bugs:

    • So, hab den Bug beim Firststart behoben, lag daran, dass die Einträge erst beim Beenden des Programms geschrieben werden und aber bei den Details aus der Ini ausgelesen werden. Sprich: neue Ini-Date -> Keine Einträge -> Error ..
    • Bug gefixt, der entstand wenn man einen neuen einzelnen Eintrag hinzufügen wollte..
    • Bug gefixt, der möglich gewesen wäre, wenn man das Programm mit einem anderen Arbeitsverzeichnis als @ScriptDir startet

    Neuerungen:

    • Hab jetzt auf aufgrund einer Anregung per PN eine Einstellungs-GUI eingebaut in der man einstellen kann, ob bei einem Doppelklick der Eintrag gestartet werden soll, oder ob die Details angezeigt werden.
    • 05.05.2010: Die Datenbank verwendet absofort eine SQLite-Datenbank.

    Bisherige Ideen:

    • Bei einer Ini-Datei die größer als 32KB werden würde, automatisch als CFG abspeichern gestrichen
    • eventuell ganz auf SQLite umsteigen erledigt

    05.05.2010: Falls ihr in der neuen Version noch irgendwelche Fehler/Bugs entdeckt, könnt ihr diese natürlich jederzeit melden!

    Dateien

    Datenbank_2.au3 30,25 kB – 510 Downloads Datenbank_SQLite.au3 28,97 kB – 537 Downloads Datenbank.au3 26,26 kB – 578 Downloads
  • Suche Tutorial für WinHttp UDF

    • oetzn
    • 2. April 2010 um 18:23

    so eines hab ich auch schon gesucht :D

    falls du eines findest, könntest du es dann hier posten? Ich wäre dir sehr verbunden xD

  • Array fehler

    • oetzn
    • 2. April 2010 um 14:29

    ich denke hier könnte der Fehler liegen: (Zeile 218)

    [autoit]

    $MusicHandle = _BASS_StreamCreateFile(False, $ARRPLAY[$titelnummer + 1], 0, 0, 0)

    [/autoit]

    probiers mal so: (Zeile 216)

    statt

    [autoit]

    $ARRPLAY = $CmdLine

    [/autoit][autoit]

    $ARRPLAY = $CmdLine
    ReDim $ARRPLAY[Ubound($CmdLine) +1]

    [/autoit]

    ist aber nur ned vermutung^ ^

  • 2 Funktionen = 2 Prozesse oder = 1 Prozess?

    • oetzn
    • 1. April 2010 um 13:11

    FKFK


    Mit Adlib-Funktionen kann man auch viele Sachen (fast) gleichzeitig machen, so hab ich das gelöst bei meinem Chat.

    1 Adlibfunktion, die überprüft, ob sich jemand verbinden will
    1 Adlibfunktion, die überprüft, ob einer der Clients etwas schickt
    1 Adlibfunktion, die überprüft, ob noch alle Clients online sind

    da lässt sich viel machen und das Programm läuft mit vielleicht maximal 3 % CPU Auslastung @3.6Ghz
    [MSIE_newline_end ]

  • Farbe in einem bestimmten bereich suchen mit Pixel search

    • oetzn
    • 1. April 2010 um 13:08

    ich weiß nicht wie das bei euch ist aber bei mir schlägt ja immer mein 6. Sinn Alarm sobald ich nur irgendwo das Wort Pixelsearch lese : D

  • 30 Dinge die man im Fahrstuhl getan haben muss

    • oetzn
    • 31. März 2010 um 20:28

    von Facebook geklaut x D

  • Mouse Check Color

    • oetzn
    • 31. März 2010 um 15:47

    qixx

    man könnte auch HotkeySet verwenden...
    Das würde den Tastendruck abfangen und man könnte nicht in Konflikt mit einem anderen Programm etc kommen.. .

  • bei UDPBind die IP vom Server oder Client?

    • oetzn
    • 31. März 2010 um 15:38

    es gehört in beiden Fällen die IP des Servers rein...

    Der Client muss sich mit UDPOpen mit dem Server verbinden und der Server muss mit UDPBind an seiner Adresse einen 'lauschenden' Socket erzeugen, sonst müsste ja bei jedem Server zuerst jemand die IP des Clients eingeben bevor er sich verbinden kann :D

  • bei UDPBind die IP vom Server oder Client?

    • oetzn
    • 31. März 2010 um 15:35

    das kann man sehr wohl erkennen, man muss nur lesen können :D

    BSP zu UDPOpen:

    [autoit]

    ;CLIENT!!!!!!!! Start SERVER First...dummy!!
    $g_IP="127.0.0.1"

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

    ; Start The UDP Services
    ;==============================================
    UDPStartUp()

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

    ; Connect to a Listening "SOCKET"
    ;==============================================
    $socket=UDPOpen($g_IP,65432)
    If @error <> 0 Then Exit

    [/autoit]


    BSP zu UDPBind:

    [autoit]

    ;SERVER!! Start Me First !!!!!!!!!!!!!!!
    $g_IP="127.0.0.1"

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

    ; Start The UDP Services
    ;==============================================
    UDPStartUp()

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

    ; Create a Listening "SOCKET"
    ;==============================================
    $socket=UDPBind($g_IP,65432)
    If @error <> 0 Then Exit

    [/autoit]


    Da steht ganz klar und deutlich, dass dies der Server ist, gleich in der 1. Zeile :D
    [MSIE_newline_end ]

  • bei UDPBind die IP vom Server oder Client?

    • oetzn
    • 31. März 2010 um 15:29

    Create a socket bound to an incoming connection.

    sagt die Hilfe, demnach: Server, weil ja der Client die Verbindung aufbaut..

    UDPBind ist sowas wie TCPAccept würd ich sagen..

    Beim Client brauchst du dann UCPOpen...

    Guck einfach zu den BSPs in der Hilfe, da steht immer ob das der Server oder Client ist ^^

  • We aRe oNe - Webradioplayer

    • oetzn
    • 31. März 2010 um 13:57

    dürfte ich, natürlich mit Erwähnung, deine Funktion _GetTrack verwenden ?

  • Express Gate

    • oetzn
    • 26. März 2010 um 19:45

    also ich hab auch ein Asus Mainboard und Express Gate war das erste das ich abgeschaltet habe ;) (geht im Bios)

    installieren kannst du es über die (hoffentlich) mitgelieferte Treiber-und-sonst-was-CD, da ist das drauf..
    [MSIE_newline_end ]

  • Text aus Programm in Editor kopieren, nach bestimmten Worten suchen und kopieren in anderes Dokument

    • oetzn
    • 21. März 2010 um 13:24

    bei StringRegExp musst du ein PATTERN angeben

    das ist nicht einfach ein Wort sondern gibt eine bestimmte "Form" vor, wie das Wort oder der String auszusehen hat, bzw gibt dann je nach Flag entweder die Teile zurück die "passen" oder einfach 1 wenn er etwas gefunden hat und 0 wenn keine Übereinstimmung vorliegt.

    Diese Form kann zb sein, darf nur aus Großbuchstaben/Kleinbuchstaben/Zahlen bstehen und noch viel mehr

    um welches Programm handelt es sich denn ? Kann man das Kopieren nicht auf Code-Ebene erledigen? um nicht die Maus etc bewegen zu müssen..

  • Nicht sichtbare GUI

    • oetzn
    • 21. März 2010 um 13:17

    MrB

    schau dir mal den Befehl

    [autoit]

    SplashImageOn

    [/autoit]

    an ;)

  • ID von Fenstern herausfinden

    • oetzn
    • 19. März 2010 um 12:33

    einfach explorer.exe starten ; )

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™