Lune

    • Release
    • Open Source

    Es gibt 45 Antworten in diesem Thema. Der letzte Beitrag () ist von ClonkAndre.




      Mit Lune ist es möglich Serien und Filme selbst zu erstellen und zu verwalten.
      Das Programm bietet einige tolle Funktionen die es einem gemütlich macht seine Videos zu schauen.

      Anleitung

      (ausführlichere Anleitung folgt)
      Lune.bmp


      ChangeLog

      Version 2.0.1.5:
      - Automatisches Suchen von Dateien
      - Weitere Formate unterstützen
      - Scrollbar ändern
      - Tabs für Serien, Playlists
      - Auf Fernbedienung anzeigen
      - Beschreibung bei Episoden/Videos
      - Sortierung
      - Bugfixes
      - Episode hinzufügen auto-fillout
      - Bildschirm in Stand-By schalten
      - Mit Fernbedienung starten

      Version 2.0.1.6:
      - Verbindung zu IMDB (Suche)
      - Bildschirme bei Vollbild ausschalten
      - Auf Fernbedienung anzeigen
      - Bilder andere Auflösung
      - Keine CONFIG-Datei
      - Scroll to last seen
      - Bugfixes

      Version 2.0.1.7:
      - Spracherkennung
      - Bugfixes
      - Settings wieder in eigene Datei
      - Andere Player verwenden
      - Exportieren vereinfachen
      - Nach Updates suchen ändern (entfernt)
      - Countdown abschaltbar

      Version 2.0.1.8:
      - Bei externem Player, anderer ausblenden
      - Keine Endlosschleife
      - Nach zuendeschauen nicht nach Zeit fragen
      - Auto-Abspielen abstellbar
      - Scrollbar verbessern
      - Pfad bei Image disable
      - Taskleiste Progressbar und Icons
      - Symbole ändern

      Version 2.0.1.9:
      - Gruppen
      - Bildergröße einstellbar (fit or stretch)
      - Bugfixes (Überschreiben, ControlBox Buttons)
      - Fernbedienung abschaltbar
      - Port änderbar
      - Player Form
      - Bilderanzeige schneller
      - Animationen bei Bilderanzeige
      - Passwortschutz (AES)
      - Bugfixes (Bilder, Auto-Scroll, etc.)
      - Projekt wieder umbenannt

      Version 3.0.0.0:
      - Design geändert
      - Suche
      - Einzelne Filme
      - Bug- und Performance fixes
      - Weitere Funktionen...

      Version 3.0.0.1:
      - Übersetzung vervollständigt
      - Bug fixes
      - Neue Episode Button
      - Keine Abspielabfrage wenn mehr als 90% geschaut wurde
      - Vorspulen bei gedrückt halten
      - Dauer über Player ermitteln


      ToDo

      - Anleitung erneuern
      - Verbindung zu Datenbank (Log-In)
      - Episoden & Staffeln erkennen


      Open Source

      Verschlüsselung

      VB.NET-Quellcode

      1. Imports System.IO
      2. Imports System.Security.Cryptography
      3. Imports System.Text
      4. Public Class Crypt
      5. Dim MagicBytes() As Byte
      6. Sub New(ByVal MagicString As String)
      7. MagicBytes = Encoding.Unicode.GetBytes(MagicString)
      8. End Sub
      9. Private Function CreateSalt() As String
      10. Dim chars As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+=][}{<>"
      11. Dim salt As String = ""
      12. Dim rnd As New Random
      13. For i As Integer = 1 To 64
      14. Dim x As Integer = rnd.Next(0, chars.Length - 1)
      15. salt &= chars.Substring(x, 1)
      16. Next
      17. Return salt
      18. End Function
      19. Private Function CreateChecksum(ByVal Bytes() As Byte) As Byte()
      20. Dim result() As Byte
      21. Dim sha As New SHA512Managed()
      22. result = sha.ComputeHash(Bytes)
      23. Return result
      24. End Function
      25. Public Sub EncryptFile(ByVal FileName As String, ByVal Key As String)
      26. Dim salt() As Byte = Encoding.Unicode.GetBytes(CreateSalt())
      27. Dim checksum() As Byte = CreateChecksum(File.ReadAllBytes(FileName))
      28. Dim AES As New AesCryptoServiceProvider()
      29. Dim rfc As New Rfc2898DeriveBytes(Key, salt)
      30. AES.Key = rfc.GetBytes(32)
      31. AES.IV = rfc.GetBytes(16)
      32. Using fsInput As New FileStream(FileName, FileMode.Open, FileAccess.Read)
      33. Using fsEncrypted As New FileStream(FileName & "_e", FileMode.Create, FileAccess.Write)
      34. fsEncrypted.Write(MagicBytes, 0, MagicBytes.Length)
      35. fsEncrypted.Write(salt, 0, salt.Length)
      36. fsEncrypted.Write(checksum, 0, checksum.Length)
      37. Using cryptostream As New CryptoStream(fsEncrypted, AES.CreateEncryptor, CryptoStreamMode.Write)
      38. fsInput.CopyTo(cryptostream)
      39. End Using
      40. End Using
      41. End Using
      42. File.Delete(FileName)
      43. File.Move(FileName & "_e", FileName)
      44. End Sub
      45. Public Function DecryptFile(ByVal FileName As String, ByVal Key As String) As Boolean
      46. Try
      47. Dim salt(127) As Byte
      48. Dim mag(MagicBytes.Length - 1) As Byte
      49. Dim checksum(63) As Byte
      50. Using fshash As New FileStream(FileName, FileMode.Open, FileAccess.Read)
      51. fshash.Read(mag, 0, mag.Length)
      52. fshash.Read(salt, 0, salt.Length)
      53. fshash.Read(checksum, 0, checksum.Length)
      54. Dim AES As New AesCryptoServiceProvider()
      55. Dim rfc As New Rfc2898DeriveBytes(Key, salt)
      56. AES.Key = rfc.GetBytes(32)
      57. AES.IV = rfc.GetBytes(16)
      58. Using cryptostream As New CryptoStream(fshash, AES.CreateDecryptor, CryptoStreamMode.Read)
      59. Using fs As New FileStream(FileName & "_d", FileMode.Create)
      60. cryptostream.CopyTo(fs)
      61. End Using
      62. End Using
      63. End Using
      64. If checksum.SequenceEqual(CreateChecksum(File.ReadAllBytes(FileName & "_d"))) Then
      65. File.Delete(FileName)
      66. File.Move(FileName & "_d", FileName)
      67. Return True
      68. Else
      69. File.Delete(FileName & "_d")
      70. Return False
      71. End If
      72. Catch ex As Exception
      73. File.Delete(FileName & "_d")
      74. Return False
      75. End Try
      76. End Function
      77. Public Function IsEncrypted(ByVal FileName As String) As Boolean
      78. Dim mag(MagicBytes.Length - 1) As Byte
      79. Using fshash As New FileStream(FileName, FileMode.Open, FileAccess.Read)
      80. fshash.Read(mag, 0, mag.Length)
      81. End Using
      82. Return mag.SequenceEqual(MagicBytes)
      83. End Function
      84. End Class



      HTTP-Server

      VB.NET-Quellcode

      1. Imports System.Net
      2. Public Class Site
      3. Dim _bytes As Byte()
      4. Dim _name As String
      5. Dim listener As HttpListener
      6. Dim _caller As Form
      7. Dim _port As Integer
      8. Dim t As New Threading.Thread(Sub() Request()) With {.IsBackground = True}
      9. Sub New(ByVal bytes As Byte(), ByVal name As String, ByVal caller As Form, ByVal port As Integer)
      10. _bytes = bytes
      11. _name = name
      12. _caller = caller
      13. _port = port
      14. t.Start()
      15. End Sub
      16. Public Property Bytes As Byte()
      17. Get
      18. Return _bytes
      19. End Get
      20. Set(value As Byte())
      21. _bytes = value
      22. End Set
      23. End Property
      24. Public Sub Close()
      25. allow = False
      26. t.Abort()
      27. listener.Stop()
      28. End Sub
      29. Dim allow As Boolean = True
      30. Event RequestReceived(eq As String)
      31. Public Sub Request()
      32. listener = New HttpListener()
      33. listener.Prefixes.Add("Http://*:" & _port & "/" & _name & "/")
      34. listener.Start()
      35. Do While allow
      36. Try
      37. Dim context As HttpListenerContext = listener.GetContext
      38. Dim response As HttpListenerResponse = context.Response
      39. If Not String.IsNullOrEmpty(context.Request.RawUrl) Then
      40. Dim responseHtmlBytes As Byte()
      41. _caller.Invoke(Sub() RaiseEvent RequestReceived(context.Request.Url.Segments(context.Request.Url.Segments.Count - 1)))
      42. responseHtmlBytes = _bytes
      43. Dim stream As IO.Stream = response.OutputStream
      44. stream.Write(responseHtmlBytes, 0, responseHtmlBytes.Length)
      45. stream.Close()
      46. End If
      47. Catch ex As Exception
      48. End Try
      49. Loop
      50. End Sub
      51. End Class



      Image zu Base64 und Base64 zu Image

      VB.NET-Quellcode

      1. Public Function ConvertImageToBase64(ByVal img As Image) As String
      2. Dim b64 As String
      3. Using MS As New MemoryStream
      4. img.Save(MS, Imaging.ImageFormat.Jpeg)
      5. b64 = Convert.ToBase64String(MS.ToArray)
      6. End Using
      7. Return b64
      8. End Function
      9. Public Function ConvertBase64ToImage(ByVal base64string As String) As Image
      10. Dim img As Image
      11. Using MS As New MemoryStream(Convert.FromBase64String(base64string))
      12. img = Image.FromStream(MS)
      13. End Using
      14. Return img
      15. End Function



      Dateien rekursiv suchen

      VB.NET-Quellcode

      1. Public Function GetFilesRecursive(ByVal initial As String) As List(Of String)
      2. Dim result As New List(Of String)
      3. Dim stack As New Stack(Of String)
      4. stack.Push(initial)
      5. Do While (stack.Count > 0)
      6. Dim dir As String = stack.Pop
      7. Try
      8. result.AddRange(Directory.GetFiles(dir, "*.*"))
      9. Dim directoryName As String
      10. For Each directoryName In Directory.GetDirectories(dir)
      11. stack.Push(directoryName)
      12. Next
      13. Catch ex As Exception
      14. End Try
      15. Loop
      16. Return result
      17. End Function



      IMDB API

      VB.NET-Quellcode

      1. Public Function FindSeries(ByVal title As String) As ShortSeries
      2. Try
      3. Dim Movie As XElement = XDocument.Load("http://www.omdbapi.com/?t=" & title & "&r=xml&type=series").Descendants("movie")(0)
      4. Dim t As String = Movie.Attribute("title").Value
      5. Dim desc As String = Movie.Attribute("plot").Value
      6. Dim img As String = Movie.Attribute("poster").Value
      7. Dim ssr As New ShortSeries(t, desc, img)
      8. Return ssr
      9. Catch ex As Exception
      10. Return Nothing
      11. End Try
      12. End Function
      13. Public Function FindMovie(ByVal title As String) As ShortMovie
      14. Try
      15. Dim Movie As XElement = XDocument.Load("http://www.omdbapi.com/?t=" & title & "&r=xml&type=movie").Descendants("movie")(0)
      16. Dim t As String = Movie.Attribute("title").Value
      17. Dim desc As String = Movie.Attribute("plot").Value
      18. Dim img As String = Movie.Attribute("poster").Value
      19. Dim sm As New ShortMovie(t, desc, img)
      20. Return sm
      21. Catch ex As Exception
      22. Return Nothing
      23. End Try
      24. End Function
      25. Public Class ShortSeries
      26. Dim _title As String
      27. Dim _desc As String
      28. Dim _img As String
      29. Sub New(ByVal title As String, ByVal description As String, ByVal image As String)
      30. _title = title
      31. _desc = description
      32. _img = image
      33. End Sub
      34. Public ReadOnly Property Title As String
      35. Get
      36. Return _title
      37. End Get
      38. End Property
      39. Public ReadOnly Property Description As String
      40. Get
      41. Return _desc
      42. End Get
      43. End Property
      44. Public ReadOnly Property Image As String
      45. Get
      46. Return _img
      47. End Get
      48. End Property
      49. End Class
      50. Public Class ShortMovie
      51. Dim _title As String
      52. Dim _desc As String
      53. Dim _img As String
      54. Sub New(ByVal title As String, ByVal description As String, ByVal image As String)
      55. _title = title
      56. _desc = description
      57. _img = image
      58. End Sub
      59. Public ReadOnly Property Title As String
      60. Get
      61. Return _title
      62. End Get
      63. End Property
      64. Public ReadOnly Property Description As String
      65. Get
      66. Return _desc
      67. End Get
      68. End Property
      69. Public ReadOnly Property Image As String
      70. Get
      71. Return _img
      72. End Get
      73. End Property
      74. End Class



      XML schreiben und lesen

      VB.NET-Quellcode

      1. Public Settings As New Settings
      2. Sub New()
      3. If File.Exists(Path.Combine(Application.StartupPath, "Settings\Settings.CONFIG")) Then Settings = ReadSettings() Else Save()
      4. End Sub
      5. Public Function ReadSettings() As Settings
      6. Dim settings As New Settings
      7. Using objStreamReader As New StreamReader(Path.Combine(Application.StartupPath, "Settings\Settings.CONFIG"))
      8. Dim x As New XmlSerializer(settings.GetType)
      9. settings = CType(x.Deserialize(objStreamReader), Settings)
      10. End Using
      11. Return settings
      12. End Function
      13. Public Sub Save()
      14. Dim path As String = IO.Path.Combine(Application.StartupPath, "Settings\Settings.CONFIG")
      15. Using objStreamWriter As New StreamWriter(path)
      16. Dim x As New XmlSerializer(Settings.GetType)
      17. x.Serialize(objStreamWriter, Settings)
      18. End Using
      19. End Sub
      20. Die Klasse "Settings" besteht ausschließlich aus Properties und besitzt keinen Konstruktor.





      Verwendete Programmiersprache(n) und IDE(s):
      Visual Basic .NET / IDE VS 2015 Community

      Systemanforderungen:
      Framework 4 oder höher (wegen HTTP-Server)

      Systemveränderungen:
      Beim Erstellen einer Regel in der Firewall.

      Download:
      Lune.zip (Version 3.0.0.1) (komprimiert ~ 1,6 MB, unkomprimiert ~ 26,3 MB)

      Lizenz/Weitergabe:
      Freeware, OpenSource (auf Anfrage werden Sachen wie Controls und andere Funktionen hier freigegeben)

      Rechtliches:
      StreamCloud an sich ist legal, es ist nur ein Dienst zum Videos teilen, wie z.B. Amazon CloudFront,
      dennoch ist dort auch illegales Material vorhanden. Welche Inhalte Nutzer letztendlich in das Programm eingeben ist ihnen überlassen.
      Die Inhalte werden nicht herunter geladen, lediglich in den Cache, es handelt sich also um Streaming.

      Dieser Beitrag wurde bereits 81 mal editiert, zuletzt von „xd-franky-5“ ()

      Tolle Anwendung, aber noch keine Rückmeldung?
      Ich will jetzt nicht auf alles Positive eingehen, aber mir gefällt die Anwendung sehr! Mach weiter so!

      Fehler: Wenn man Sprache und Design gleichzeitig ändert, so kommt der Neustartdialog 2 Mal(erst englisch, dann deutsch)

      Idee: Wenn man die Optionen nicht speichert, fragt ein Dialog nach ob man nicht speichern wolle, Spracherkennung beim ersten Start

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „3Angle“ ()

      Version 2.0.1.5

      Änderungen:
      - Automatisches Suchen von Dateien
      - Weitere Formate unterstützen
      - Scrollbar ändern
      - Tabs für Serien, Playlists
      - Auf Fernbedienung anzeigen
      - Beschreibung bei Episoden/Videos
      - Sortierung
      - Bugfixes
      - Episode hinzufügen auto-fillout
      - Bildschirm in Stand-By schalten
      - Mit Fernbedienung starten

      Download(s):
      VideoManager.zip (Version 2.0.1.5) (komprimiert ~ 800 KB, unkomprimiert ~ 6 MB)
      Tolles, Programm, das dazu noch toll aussieht (Vllt. ein wenig den Kontrast erhöhen) - Ich hab mal das Programm ausprobiert und funktionieren tut es weitestgehend:
      Wenn man das erste mal ein Video zu einer Serie hinzufügen will (also auf den Plus Knopf klickt) kommt folgende Fehlermeldung:
      Spoiler anzeigen
      ​See the end of this message for details on invoking
      just-in-time (JIT) debugging instead of this dialog box.

      ************** Exception Text **************
      System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
      Parameter name: index
      at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
      at VideoManager.AddEpisodeFrm.AddEpisodeFrm_Load(Object sender, EventArgs e)
      at System.Windows.Forms.Form.OnLoad(EventArgs e)
      at System.Windows.Forms.Form.OnCreateControl()
      at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
      at System.Windows.Forms.Control.CreateControl()
      at System.Windows.Forms.Control.WmShowWindow(Message& m)
      at System.Windows.Forms.Control.WndProc(Message& m)
      at System.Windows.Forms.Form.WmShowWindow(Message& m)
      at VideoManager.CustomForm.WndProc(Message& m)
      at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

      ************** Loaded Assemblies **************
      mscorlib
      Assembly Version: 4.0.0.0
      Win32 Version: 4.6.1080.0 built by: NETFXREL3STAGE
      CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
      ----------------------------------------
      VideoManager
      Assembly Version: 2.0.1.1
      Win32 Version: 2.0.1.1
      CodeBase: file:///C:/Users/Gabriel/Desktop/VideoManager/VideoManager.exe
      ----------------------------------------
      System.Windows.Forms
      Assembly Version: 4.0.0.0
      Win32 Version: 4.6.1038.0 built by: NETFXREL2
      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
      ----------------------------------------
      System
      Assembly Version: 4.0.0.0
      Win32 Version: 4.6.1081.0 built by: NETFXREL3STAGE
      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
      ----------------------------------------
      System.Drawing
      Assembly Version: 4.0.0.0
      Win32 Version: 4.6.1078.0 built by: NETFXREL3STAGE
      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
      ----------------------------------------
      Microsoft.VisualBasic
      Assembly Version: 10.0.0.0
      Win32 Version: 14.6.1038.0 built by: NETFXREL2
      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
      ----------------------------------------
      System.Core
      Assembly Version: 4.0.0.0
      Win32 Version: 4.6.1038.0 built by: NETFXREL2
      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
      ----------------------------------------
      System.Runtime.Remoting
      Assembly Version: 4.0.0.0
      Win32 Version: 4.6.1038.0 built by: NETFXREL2
      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
      ----------------------------------------
      System.Configuration
      Assembly Version: 4.0.0.0
      Win32 Version: 4.6.1038.0 built by: NETFXREL2
      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
      ----------------------------------------
      System.Xml
      Assembly Version: 4.0.0.0
      Win32 Version: 4.6.1064.2 built by: NETFXREL3STAGE
      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
      ----------------------------------------
      Microsoft.GeneratedCode
      Assembly Version: 1.0.0.0
      Win32 Version: 4.6.1064.2 built by: NETFXREL3STAGE
      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
      ----------------------------------------

      ************** JIT Debugging **************
      To enable just-in-time (JIT) debugging, the .config file for this
      application or computer (machine.config) must have the
      jitDebugging value set in the system.windows.forms section.
      The application must also be compiled with debugging
      enabled.

      For example:

      <configuration>
      <system.windows.forms jitDebugging="true" />
      </configuration>

      When JIT debugging is enabled, any unhandled exception
      will be sent to the JIT debugger registered on the computer
      rather than be handled by this dialog box.


      Es ist kein gravierender Fehler, denn gleich nach der Fehlermeldung öffnet sich der gewünschte "hinzufügen" Dailog, aber es wäre toll zusehen wenn der Fehler weg wäre.

      Mfg Gabriel

      Version 2.0.1.6

      Danke @gabriel-b, habe den Fehler nun entfernt :) Freut mich, dass es dir gefällt!

      Änderungen:

      - Verbindung zu IMDB (Suche)
      - Bildschirme bei Vollbild ausschalten
      - Auf Fernbedienung anzeigen
      - Bilder andere Auflösung
      - Keine CONFIG-Datei
      - Scroll to last seen
      - Bugfixes

      Download(s):
      VideoManager.zip (Version 2.0.1.6) (komprimiert ~ 412 KB, unkomprimiert ~ 5.6 MB)
      Funkt wirklich, und hab mir mal eine Serie aus dem Internet über die neu eingebaute Suche heruntergeladen. Anscheinend gibt es da beim abspielen der Medien ein wenig Probleme (siehe Screenshot)... nach dieser Meldung bleibt einfach der Schriftzug "Start" stehen. Also es passiert nichts. Würde mich über einen weiteren Bugfix freuen. Trotzdem tolle Arbeit geleistet!
      Mfg
      Edit: ganz übersehen das man den Link/Pfad dennoch selber einfügen muss, sorry für die Umstände
      Bilder
      • 1.PNG

        75,56 kB, 1.043×631, 2.933 mal angesehen
      Hast du richtig erkannt, wenn du dir eine Serie herunterlädst, sind keine Links/Pfade in den Episoden, die musst du selbst nachträglich hinzufügen. Ich hatte eigentlich eingebaut, dass der Player das erkennt, aber anscheinend tut er das nicht. Werde ich so schnell wie möglich ändern, danke :)
      Gutes Programm. Das beste Programm dieser Art, was ich bis jetzt gesehen habe, und ich suche schon lange nach einem. Doch ich habe noch ein paar Vorschläge:
      • Bitte eine Option einbauen, einen anderen Player zu verwenden. Einfach ein Textfeld für den Pfad und eine für die Argumente, wo %file% mit dem Dateipfad bzw. der URL ersetzt wird. Dies könnte man auch davon abhängig machen
      • Man kann zwar importieren, aber das Exportieren finde ich nicht. Es ist etwas unkomfortabel, die Dateien aus dem Verzeichnis zu ziehen
      • Wenn ich auf Nach Updates (was nebenbei angemerkt eine komische Beschriftung ist) klicke öffnet sich die Homepage, wo ich aber nicht erkennen kann, ob ich die aktuelle Version habe. Tipp: Implementiere nUpdate. Dann funktioniert alles automatisch.
      • Ich finde den Countdown zu lang und eigentlich komplett unnötig. Eine Option in den Einstellungen zum Abschalten wäre eine Idee.
      • Wieso speicherst du die Einstellungen in AppData, aber die Serien und Playlisten im Programmverzeichnis? Wenn ich die Anwendung z.B. in C:\Program Files (x86) ablege, dann habe ich als normaler User keine Schreibrechte. Wenn ich aber den Benutzer wechsle, hat er die selben Serien und Playlisten, aber eigene Einstellungen. Vorschläge:
        • Auch die Serien und Playlisten in AppData speichern, oder
        • die Einstellungen im Programmverzeichnis speichern, sodass dein Programm portable ist, oder
        • eine Mischung aus beidem: Erst prüfen, ob eine Einstellungsdatei im Programmverzeichnis liegt, wenn ja, dann ist die Anwendung portable, also alles im Anwendungsverzeichnis, wenn nicht, dann sind alle Daten in AppData gespeichert

      Dann noch eine Frage: Welche Formate werden unterstützt?

      Diese Anwendung hat Potenzial! Du musst es nur noch einbauen.

      Grüße
      Alle Angaben sind ohne Gewähr, jedoch mit Pistole. Glücksspiel, Drogen und leckeres Essen können süchtig machen.

      43232069737420636f6f6c21
      @masterm danke für deine sehr ausführliche und hilfreiche Kritik :)
      Den Countdown kann man ja beliebig ändern, ich habe das von Amazon übernommen dort gibts auch nen Countdown :D Aber ich werde machen, dass man diesen ausstellen kann (was aber keine Auswirkungen auf Episoden/Filme hat mit StreamCloud-Links). Ich hatte die Einstellungen erst auch in einer extra Datei hab's aber geändert, nun werd' ichs aber wieder einbauen.
      Noch eine Frage, die kann auch an alle Anwender gehen: Wie verwendet ihr das Programm, also was genau macht ihr. Schaut ihr mehr Filme oder Serien, erstellt ihr eigene oder mit der Suchfunktion ? Verwendet ihr eigene Dateipfade, StreamCloud-Links oder Online-MP4-Links ?

      mfg Frank
      Sieht gut aus. Allerdings gibt es bei mir div. Probleme:

      Problem 1. Optisch:


      Problem 2:
      Das Farbschema lässt sich bei mir nicht ändern. Ich ändere es, übernehme die Änderung (via Neustart) und es ist immer noch das selbe..

      Weiter konnte ich wegen meinem Zeitmangel nicht testen.
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Danke für dein Feedback. Scheint als hättest du Windows 8 bzw 8.1, dort ist mir das auch mal aufgefallen, ich werd' mal versuchen die Icons als base64 string zu speichern und zu laden dann müsste das gehen. Und warum du das Farbschema nicht ändern kannst ist mir ein Rätsel, tut mir leid.

      mfG Frank

      xd-franky-5 schrieb:

      Und warum du das Farbschema nicht ändern kannst ist mir ein Rätsel.

      Das liegt wohl an der Dateiüberwachung. Häkchen weg machen, dann werden auch die Einstellungen übernommen.



      edit: Du solltest die Lizenzierung nochmal überdenken, eine Open Source kann ich hier nirgends entdecken.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Pasta“ ()

      xd-franky-5 schrieb:

      scheint als hättest du Windows 8 bzw 8.1, dort ist mir das auch mal aufgefallen

      Nein. Getestet auf Windows 7 Home Premium 64 bit.
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      @Gather Okay dann anscheinend alle Versionen unter Windows 10. Die Buttons sind nämlich ASCII-Symbole von hier. Ich denke diese Windows-Versionen können das nicht anzeigen, wenn du weißt wie man das lösen kann, ich denke da an Kodierung ändern, dann kannst du mir bescheid geben :)

      mfG Frank

      Version 2.0.1.7

      Änderungen:
      - Spracherkennung
      - Bugfixes
      - Settings wieder in eigene Datei
      - Andere Player verwenden
      - Exportieren vereinfachen
      - Nach Updates suchen ändern (entfernt)
      - Countdown abschaltbar

      Screenshot(s):


      Download(s):
      VideoManager.zip (Version 2.0.1.7) (komprimiert ~ 417 KB, unkomprimiert ~ 5,7 MB)
      @xd-franky-5 Schön, dass du auf meine Vorschläge eingehst! Ich habe noch einige Fehler gefunden:
      • Die Coverbilder werden gezerrt: Ich nehme dieses quadratische Cover: und nun macht das Programm daraus folgendes:
      • Wenn ich einen externen Player verwende wird der Player trotzdem angezeigt, dass dort Video nicht abgespielt - im externen Player funktioniert alle
      • Video wird in einer Endlosschleife abgespielt, wenn du nur eines in der Serie hast. Vorschlag: Wenn es das letzte Video ist, dann nicht wieder zum ersten springen
      • Wenn ich ein Video bis zum Ende gesehen habe, werde ich beim nächsten mal trotzdem gefragt, ob ich an der letzten Stelle weiterschauen möchte, womit automatisch dann zum nächsten gesprungen wird.
      Außerdem: Wäre es möglich, das automatische Abspielen der nächsten Folge über eine Einstellung abzustellen? Ich nicke gerne mal ein, wenn ich abends meinen PC an der Glotze angeschlossen habe und dort Serien schaue. Ärgerlich wenn man dann aufwacht und nicht mehr weiß, was man alles gesehen hat und was nicht, weil alles abgespielt und damit als gesehen markiert wird.

      Das Programm ist Top! Weiter so :thumbup:

      Edit: Noch 'ne Idee: Verwendung von einem Proxy
      Edit 2: Wenn eine Serie mehr als insgesamt 15 Folgen hat werden diese nicht dargestellt. Sie sind aber vorhanden (Counter zählt weiter und in der XML sind sie auch angelegt)
      Edit 3: Bei 17 wird der Scrollbalken dargestellt. Aber halt zu spät...
      Edit 4: Das scrollen mit dem Mausrad funktioniert nicht.
      Alle Angaben sind ohne Gewähr, jedoch mit Pistole. Glücksspiel, Drogen und leckeres Essen können süchtig machen.

      43232069737420636f6f6c21

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „masterm“ ()

      @masterm danke mal wieder für deine großartige Unterstützung :)

      - Wie wäre es denn besser anstatt das zerren ? Zuschneiden ? (Teile des Bildes fallen evtl weg)
      - Ja der Player wird dort vorerst noch angezeigt, bin mit dem externen Player noch quasi in der beta-Phase :D Werde das aber im nächsten Update ändern.
      - Danke werde ich berücksichtigen.
      - Das mit dem auto. Abspielen werde ich auch ändern :)
      - Proxy, mal schauen, was ich so finde
      - Das liegt alles am Scrollbalken, den muss ich nochmal überarbeiten :S

      mfG Frank

      xd-franky-5 schrieb:

      - Wie wäre es denn besser anstatt das zerren ? Zuschneiden ? (Teile des Bildes fallen evtl weg)

      Verkleinern und Zentrieren. Ich weiß nicht, wie du die Bilder anzeigst, aber bei der PictureBox heißt das mWn AutoSize.

      Grüße

      Edit: Schon wieder einen Fehler gefunden: Wenn man eine Serie erstellt, kann man sowohl JPGs, als auch PNGs. Wenn ich die Serie bearbeite sind PNGs nicht als Filter für den OpenFileDialog verfügbar, aber wenn ich den Pfad eingebe funktioniert es trotzdem. Nebenbei angemerkt: Die Tranzparenz von PNGs funktioniert nicht und wird schwarz dargestellt.
      Alle Angaben sind ohne Gewähr, jedoch mit Pistole. Glücksspiel, Drogen und leckeres Essen können süchtig machen.

      43232069737420636f6f6c21

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „masterm“ ()

      @masterm Dass die Bilder verzerrt werden, kann nicht geändert werden, da diese immer die gleiche Größe haben müssen (werden mit gdi+ gezeichnet). Dass die Transparenz nicht funktioniert liegt daran das hinter dem Anzeigebild der Schatten gezeichnet wird. Das kann ich so jetzt nicht ändern, tut mir leid :S

      Alles andere kommt bald (eventuell Heute)

      mfG Frank