Sporadische Fehlermeldungen beim Laden von Videos/Bildern

  • VB.NET

Es gibt 29 Antworten in diesem Thema. Der letzte Beitrag () ist von kafffee.

    Sporadische Fehlermeldungen beim Laden von Videos/Bildern

    Hallo an alle!

    Bin ein ziemlicher Anfänger das mal vorab. Ich benutze Visual Studio 2019. Leider hab ich nicht herausgefunden,
    wie man normalen Text und Quellcode in einem Post richtig formatieren kann... Bei mir wird dann entweder alles
    als Text oder alles als Quellcode angezeigt... Ich bin dankbar für einen Tip dann werd ich diesen Beitrag nochmal editieren
    und den Quellcode auch als solchen darstellen...

    Doch nun zum eigentlichen Thema:

    Ich bin dabei ein kleines Programm zu schreiben, das mir Videos und Bilder aus einem ausgewählten Ordner als
    Diashow anzeigen soll. Optional in zufälliger Reihenfolge (Auswahl durch Startbildschirm.CheckBox2).

    Die Public Sub Uhr() wird dann von einem Timer aufgerufen.

    Die sortierten Dateien sind hinterlegt in Startbildschirm.ListBox1
    Die zufällige Reihenfolge in Startbildschirm.ListBox2

    Wenn ich das Programm ausführe, kommt es oft zu einem der folgenden Fehler (entweder der eine oder der andere). Das passiert jedoch nicht jedesmal, sondern wie gesagt nur manchmal. Ich habe das Ganze mal gegoogelt und probiert, das mit ausgeschaltetem Virenscanner zu probieren. Kein Ergebnis. Auch habe ich versucht, die PictureBox nach jedem Durchlauf wieder zu leeren. Auch kein Ergebnis...

    Die Fehlermeldung hab ich in den Zeilen, in denen sie auftreten, auskommentiert:

    VB.NET-Quellcode

    1. Public Sub Uhr()
    2. If Startbildschirm.ListBox2.Items(Zaehler).Substring(Startbildschirm.ListBox2.Items(Zaehler).Length - 3) = "avi" Or Startbildschirm.ListBox2.Items(Zaehler).Substring(Startbildschirm.ListBox2.Items(Zaehler).Length - 3) = "mp4" Then
    3. Timer1.Stop()
    4. If Startbildschirm.CheckBox2.Checked = True Then
    5. AxWindowsMediaPlayer1.URL = Startbildschirm.ListBox2.Items(Zaehler)
    6. Else
    7. AxWindowsMediaPlayer1.URL = Startbildschirm.ListBox1.Items(Zaehler)
    8. End If
    9. PictureBox1.Visible = False
    10. AxWindowsMediaPlayer1.Visible = True
    11. If Zaehler = Startbildschirm.ListBox2.Items.Count - 1 Then
    12. Zaehler = 0
    13. Else
    14. Zaehler = Zaehler + 1
    15. End If
    16. Else
    17. PictureBox1.Visible = True
    18. AxWindowsMediaPlayer1.Visible = False
    19. ' Bild laden
    20. Dim Stream2 As New System.IO.FileStream(Startbildschirm.ListBox2.Items(Zaehler), IO.FileMode.Open)
    21. Dim Stream1 As New System.IO.FileStream(Startbildschirm.ListBox1.Items(Zaehler), IO.FileMode.Open) 'Fehlermeldung: System.IO.IOException: "Der Prozess kann nicht auf die Datei "C:\Users\test\test.gif" zugreifen, da sie von einem anderen Prozess verwendet wird."
    22. Dim Bitmap2 As Bitmap
    23. Dim Bitmap1 As Bitmap
    24. Bitmap2 = New Bitmap(Stream2)
    25. Bitmap1 = New Bitmap(Stream1) 'Fehlermeldung: System.ArgumentException: "Ungültiger Parameter."
    26. Stream2.Close()
    27. Stream1.Close()
    28. ' Bild anpassen an PictureBox
    29. If Startbildschirm.CheckBox2.Checked = True Then
    30. With PictureBox1
    31. .Image = AutoSizeImage(Bitmap2, .ClientRectangle.Width, .ClientRectangle.Height)
    32. End With
    33. Else
    34. With PictureBox1
    35. .Image = AutoSizeImage(Bitmap1, .ClientRectangle.Width, .ClientRectangle.Height)
    36. End With
    37. End If
    38. If Zaehler = Startbildschirm.ListBox2.Items.Count - 1 Then
    39. Zaehler = 0
    40. Else
    41. Zaehler = Zaehler + 1
    42. End If
    43. End If
    44. End Sub


    CodeTags gesetzt ~VaporiZed

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

    Willkommen im Forum.

    System.IO.IOException: "Der Prozess kann nicht auf die Datei "C:\Users\test\test.gif" zugreifen, da sie von einem anderen Prozess verwendet wird."Ist eindeutig: Eine Zeile darüber öffnest Du einen Stream mit derselben Datei. Dadurch ist diese geblockt und kann bis zum Streamschließen (bzw. besser: Disposen) nicht erneut geöffnet werden. Dadurch ist Stream1 ungültig und kann nicht für Bitmap1 hergenommen werden.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Wow das ging schnell! Danke :)

    Du meinst wenn zufällig das abgefragte Item von Listbox1 und Listbox 2 sich gleichen, dann kommt es zu einem Fehler. Klingt logisch...

    Ich hab den Code jetzt mal umgeschrieben, allerdings gibt es Probleme mit der Variable "Stream". Ich glaub die lässt sich nicht festlegen innerhalb einer "If"-Schleife (bzw. kann dann nicht ausserhalb der Schleife verwendet werden), kann das sein?

    Wie deklariere ich diese richtig?

    PS: Oder soll ich dafür ein neues Thema aufmachen? Und ein Tipp wie man Code und normalen Text in einem Beitrag richtig darstellt, Code als Code und Text als Text wäre gut...

    VB.NET-Quellcode

    1. Public Sub Uhr()
    2. If Startbildschirm.ListBox2.Items(Zaehler).Substring(Startbildschirm.ListBox2.Items(Zaehler).Length - 3) = "avi" Or Startbildschirm.ListBox2.Items(Zaehler).Substring(Startbildschirm.ListBox2.Items(Zaehler).Length - 3) = "mp4" Then
    3. Timer1.Stop()
    4. If Startbildschirm.CheckBox2.Checked = True Then
    5. AxWindowsMediaPlayer1.URL = Startbildschirm.ListBox2.Items(Zaehler)
    6. Else
    7. AxWindowsMediaPlayer1.URL = Startbildschirm.ListBox1.Items(Zaehler)
    8. End If
    9. PictureBox1.Visible = False
    10. AxWindowsMediaPlayer1.Visible = True
    11. If Zaehler = Startbildschirm.ListBox2.Items.Count - 1 Then
    12. Zaehler = 0
    13. Else
    14. Zaehler = Zaehler + 1
    15. End If
    16. Else
    17. PictureBox1.Visible = True
    18. AxWindowsMediaPlayer1.Visible = False
    19. ' Bild laden
    20. 'von hier
    21. If Startbildschirm.CheckBox2.Checked = True Then
    22. Dim Stream As New System.IO.FileStream(Startbildschirm.ListBox2.Items(Zaehler), IO.FileMode.Open)
    23. Else
    24. Dim Stream As New System.IO.FileStream(Startbildschirm.ListBox1.Items(Zaehler), IO.FileMode.Open)
    25. End If
    26. Dim BMP As Bitmap
    27. BMP = New Bitmap(Stream)
    28. Stream.Close()
    29. 'bis hier
    30. ' Bild anpassen an PictureBox
    31. With PictureBox1
    32. .Image = AutoSizeImage(BMP, .ClientRectangle.Width, .ClientRectangle.Height)
    33. End With
    34. End If
    35. If Zaehler = Startbildschirm.ListBox2.Items.Count - 1 Then
    36. Zaehler = 0
    37. Else
    38. Zaehler = Zaehler + 1
    39. End If
    40. End Sub


    CodeTags gesetzt ~VaporiZed

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „VaporiZed“ ()

    @kafffee Ebenfalls Willkommen im Forum. :thumbup:
    Zum ersten:

    VB.NET-Quellcode

    1. If MyString.ToLower().EndsWith(".avi") Then
    und dann:
    Der Scope Deiner Variablen (Plural) Stream ist auf das Innere des If bzw. Else beschränkt.
    Was Du meinst, sieht so aus:

    VB.NET-Quellcode

    1. Dim Stream As System.IO.FileStream
    2. If Startbildschirm.CheckBox2.Checked Then
    3. Stream = System.IO.FileStream(Startbildschirm.ListBox2.Items(Zaehler), IO.FileMode.Open)
    4. Else
    5. Stream = System.IO.FileStream(Startbildschirm.ListBox1.Items(Zaehler), IO.FileMode.Open)
    6. End If
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Zeig Du uns mal Deinen jetzigen Code und wir sagen Dir, wo Du den Fehler eingebaut hast ;)
    Und beachte bitte den Link über CodeTags am Ende von Post#1.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ah das mit den Code Tags hab ich falsch verstanden Ich dachte das stand da weil du meine Formatierung so gesetzt hast...

    Eh voila:

    VB.NET-Quellcode

    1. Public Sub Uhr()
    2. If Startbildschirm.ListBox2.Items(Zaehler).ToLower().EndsWith(".avi") Or Startbildschirm.ListBox2.Items(Zaehler).ToLower().EndsWith(".mp4") Or Startbildschirm.ListBox1.Items(Zaehler).ToLower().EndsWith(".avi") Or Startbildschirm.ListBox1.Items(Zaehler).ToLower().EndsWith(".mp4") Then
    3. Timer1.Stop()
    4. AxWindowsMediaPlayer1.Top = 0
    5. AxWindowsMediaPlayer1.Left = 0
    6. AxWindowsMediaPlayer1.Height = Me.Height
    7. AxWindowsMediaPlayer1.Width = Me.Width
    8. If Startbildschirm.CheckBox2.Checked = True Then
    9. AxWindowsMediaPlayer1.URL = Startbildschirm.ListBox2.Items(Zaehler)
    10. Else
    11. AxWindowsMediaPlayer1.URL = Startbildschirm.ListBox1.Items(Zaehler)
    12. End If
    13. PictureBox1.Visible = False
    14. AxWindowsMediaPlayer1.Visible = True
    15. If Zaehler = Startbildschirm.ListBox2.Items.Count - 1 Then
    16. Zaehler = 0
    17. Else
    18. Zaehler = Zaehler + 1
    19. End If
    20. Else
    21. PictureBox1.Visible = True
    22. AxWindowsMediaPlayer1.Visible = False
    23. ' Bild laden
    24. Dim Stream As System.IO.FileStream
    25. If Startbildschirm.CheckBox2.Checked = True Then
    26. Stream = System.IO.FileStream(Startbildschirm.ListBox2.Items(Zaehler), IO.FileMode.Open)
    27. Else
    28. Stream = System.IO.FileStream(Startbildschirm.ListBox1.Items(Zaehler), IO.FileMode.Open)
    29. End If
    30. Dim BMP As Bitmap
    31. BMP = New Bitmap(Stream)
    32. Stream.Close()
    33. ' Bild anpassen an PictureBox
    34. With PictureBox1
    35. .Image = AutoSizeImage(BMP, .ClientRectangle.Width, .ClientRectangle.Height)
    36. End With
    37. End If
    38. If Zaehler = Startbildschirm.ListBox2.Items.Count - 1 Then
    39. Zaehler = 0
    40. Else
    41. Zaehler = Zaehler + 1
    42. End If
    43. End Sub

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

    kafffee schrieb:

    Hab ich so gemacht.
    Wahrscheinlich nicht. :(
    Du musst stets das Umfeld des Fehlers, am besten die gesamte Prozedur oder die gesamte Klasse posten, damit wir Dir helfen können.
    Wenn es sich um eine Klasse handelt, bietet es sich an, sie in einem neuen Projekt abzuspecken, so dass nur noch relevanter Code vorhanden ist, der Code, der den Fehler reproduziert.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Mit gesamte Prozedur meinst du in diesem Fall wahrscheinlich dann

    VB.NET-Quellcode

    1. Public Sub Uhr()

    Und die Klasse in der das Ganze steht ist

    VB.NET-Quellcode

    1. Public Class Form2()

    Oder meinst du eine "selbst erstellte" Klasse?

    Ich hoffe ich hab das richtig verstanden.

    Hab schon probiert das Dim Stream As System.IO.FileStream direkt in Public Class Form2() zu setzen. Kein Erfolg...
    Auch wenn ich statt

    VB.NET-Quellcode

    1. Dim

    VB.NET-Quellcode

    1. Public
    verwende tut sich nichts...
    @kafffee OK, wir beide haben was falsch gemacht. :thumbsup:
    Fang ganz schnell an mit Option Strict On, bevor Deine Projekte größer werden und Du dann zu viele Fehler rein baust:
    Visual Studio - Empfohlene Einstellungen
    Hier Dein Code:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Sub Uhr()
    2. If Startbildschirm.ListBox2.Items(Zaehler).ToString().ToLower().EndsWith(".avi") Or _
    3. Startbildschirm.ListBox2.Items(Zaehler).ToString().ToLower().EndsWith(".mp4") Or _
    4. Startbildschirm.ListBox1.Items(Zaehler).ToString().ToLower().EndsWith(".avi") Or _
    5. Startbildschirm.ListBox1.Items(Zaehler).ToString().ToLower().EndsWith(".mp4") Then
    6. Timer1.Stop()
    7. AxWindowsMediaPlayer1.Top = 0
    8. AxWindowsMediaPlayer1.Left = 0
    9. AxWindowsMediaPlayer1.Height = Me.Height
    10. AxWindowsMediaPlayer1.Width = Me.Width
    11. If Startbildschirm.CheckBox2.Checked = True Then
    12. AxWindowsMediaPlayer1.URL = Startbildschirm.ListBox2.Items(Zaehler)
    13. Else
    14. AxWindowsMediaPlayer1.URL = Startbildschirm.ListBox1.Items(Zaehler)
    15. End If
    16. PictureBox1.Visible = False
    17. AxWindowsMediaPlayer1.Visible = True
    18. If Zaehler = Startbildschirm.ListBox2.Items.Count - 1 Then
    19. Zaehler = 0
    20. Else
    21. Zaehler = Zaehler + 1
    22. End If
    23. Else
    24. PictureBox1.Visible = True
    25. AxWindowsMediaPlayer1.Visible = False
    26. ' Bild laden
    27. Dim Stream As System.IO.FileStream
    28. If Startbildschirm.CheckBox2.Checked = True Then
    29. Stream = New System.IO.FileStream(Startbildschirm.ListBox2.Items(Zaehler).ToString(), IO.FileMode.Open)
    30. Else
    31. Stream = New System.IO.FileStream(Startbildschirm.ListBox1.Items(Zaehler).ToString(), IO.FileMode.Open)
    32. End If
    33. Dim BMP As Bitmap
    34. BMP = New Bitmap(Stream)
    35. Stream.Close()
    36. ' Bild anpassen an PictureBox
    37. With PictureBox1
    38. .Image = AutoSizeImage(BMP, .ClientRectangle.Width, .ClientRectangle.Height)
    39. End With
    40. End If
    41. If Zaehler = Startbildschirm.ListBox2.Items.Count - 1 Then
    42. Zaehler = 0
    43. Else
    44. Zaehler = Zaehler + 1
    45. End If
    46. End Sub
    Und schau mal hier vorbei:
    Dialoge: Instanziierung von Forms und Aufruf von Dialogen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Alles klar es funzt wie ich es wollte (jedenfalls bis jetzt). Hab noch den ein oder anderen Bug entfernt und jetzt bin ich fast fertig. Das wär dann mein erstes richtiges Programm in VB.
    Deine Links werd ich mir mal bei Gelegenheit durchlesen hab sie bis jetzt nur überflogen...

    Gibt es eigentlich eine Plattform o.ä. wo man seine selbst programmierte Software als Open Source Projekt zugänglich machen kann?
    @kafffee Du kannst hier im Forum z.B. im ShowRoom machen.
    Bist Du wirklich der Meinung, Deine Programme veröffentlichen zu müssen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Du kannst es in den Showroom packen, wenn Du das fertig kompilierte Programm dort postest. Du kannst zusätzlich den Code posten, musst es aber nicht.
    Wenn Du quasi nur den Code posten willst, nutze den Sourcecode-Austausch, Anleitung siehe Was gehört in den Sourcecode-Austausch?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Jetzt hab ich doch noch mal ein Problem, welches glaube ich ähnlich ist wie das ursprüngliche Problem:

    Ich hab noch eine Programmfunktion zugefügt, bei der man mit CheckBox2 auswählen kann, ob auch Unterordner angezeigt werden sollen oder nicht.

    Ich hab angenommen, dass was mit den Einrückungen der If-Blöcke nicht stimmt. Was anderes fällt mir nicht ein. Der Fehler kommt in Zeile 42, ich hab die Fehlermeldung wieder auskommentiert...

    Eigentlich hab ich das Ganze doch bloss in einen grossen If-Block verpackt. Meint ihr ich sollte alles zwischen den Zeilen 5 und 60 einfach auch mal in eine separate Public Sub() packen?

    VB.NET-Quellcode

    1. Public Sub Uhr()
    2. If Startbildschirm.ListBox1.Items.Count = 0 Then
    3. MsgBox("Im ausgewählten Ordner sind keine unterstützten Dateien!")
    4. Else
    5. If Startbildschirm.ListBox2.Items(Zaehler).ToLower().EndsWith(".avi") Or Startbildschirm.ListBox2.Items(Zaehler).ToLower().EndsWith(".mp4") Or Startbildschirm.ListBox1.Items(Zaehler).ToLower().EndsWith(".avi") Or Startbildschirm.ListBox1.Items(Zaehler).ToLower().EndsWith(".mp4") Then
    6. Timer1.Stop()
    7. AxWindowsMediaPlayer1.Top = 0
    8. AxWindowsMediaPlayer1.Left = 0
    9. AxWindowsMediaPlayer1.Height = Me.Height
    10. AxWindowsMediaPlayer1.Width = Me.Width
    11. PictureBox1.Enabled = False
    12. PictureBox1.Visible = False
    13. AxWindowsMediaPlayer1.Enabled = True
    14. AxWindowsMediaPlayer1.Visible = True
    15. If Startbildschirm.CheckBox2.Checked = True Then
    16. AxWindowsMediaPlayer1.URL = Startbildschirm.ListBox2.Items(Zaehler)
    17. Else
    18. AxWindowsMediaPlayer1.URL = Startbildschirm.ListBox1.Items(Zaehler)
    19. End If
    20. AxWindowsMediaPlayer1.Ctlcontrols.play()
    21. If Zaehler = Startbildschirm.ListBox2.Items.Count - 1 Then
    22. Zaehler = 0
    23. Else
    24. Zaehler = Zaehler + 1
    25. End If
    26. Else
    27. Timer1.Stop()
    28. PictureBox1.Left = 0
    29. PictureBox1.Top = 0
    30. PictureBox1.Size = New Size(Me.Width, Me.Height)
    31. Timer1.Interval = Startbildschirm.btnSekundenzahl.Value * 1000
    32. Timer1.Enabled = True
    33. PictureBox1.Enabled = True
    34. PictureBox1.Visible = True
    35. AxWindowsMediaPlayer1.Enabled = False
    36. AxWindowsMediaPlayer1.Visible = False
    37. ' Bild laden
    38. Dim Stream As System.IO.FileStream
    39. If Startbildschirm.CheckBox2.Checked = True Then
    40. Stream = New System.IO.FileStream(Startbildschirm.ListBox2.Items(Zaehler), IO.FileMode.Open)
    41. Else
    42. Stream = New System.IO.FileStream(Startbildschirm.ListBox1.Items(Zaehler), IO.FileMode.Open) 'System.UnauthorizedAccessException: "Der Zugriff auf den Pfad "C:\Users\Alpha\Pictures\xmas\xmas 2006-7\DSC00035.JPG" wurde verweigert."
    43. End If
    44. Dim BMP As Bitmap
    45. BMP = New Bitmap(Stream)
    46. Stream.Close()
    47. ' Bild anpassen an PictureBox
    48. With PictureBox1
    49. .Image = AutoSizeImage(BMP, .ClientRectangle.Width, .ClientRectangle.Height)
    50. End With
    51. Timer1.Start()
    52. If Zaehler = Startbildschirm.ListBox2.Items.Count - 1 Then
    53. Zaehler = 0
    54. Else
    55. Zaehler = Zaehler + 1
    56. End If
    57. End If
    58. End If
    59. End Sub

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

    @kafffee Es sieht aus, als ob ganz unten ein End If fehlt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also der Compiler meckert nicht. Ich hab auch mal in Zeile 61 noch ein End If reingemacht, das wird dann aber rot unterstrichen...

    Ich glaube das Problem ist ein anderes. Ich hab das Programm mal systematisch getestet. Wenn in dem ausgewählten Ordner direkt Bilder enthalten sind, funktioniert alles wie geschmiert. Aber wenn nur Unterordner drin sind, dann tritt dieser Fehler auf...

    Echt komisch...

    Edit: Kanns sein dass das einfach am Ordner liegt, also dass das gar nicht am Programm liegt sondern weil der Ordner auf irgendeine Art und Weise gesperrt ist?

    2. Edit: OK mit nem anderen Ordner funktionierts... Hab mal bei dem Ordner, bei dem es nicht geht, nachgeschaut in den Eigenschaften, da sind aber die Leserechte angekreuzt. Mit Zufalllswiedergabe gehts auch. Scheint wohl an der Datei zu liegen. Was haltet ihr davon einfach eine Fehlerbehandlung einzufügen, so a la "Datei konnte nicht geöffnet werden" und dann mit der nächsten Datei fortfahren...?

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

    @kafffee OK, Die Zeile nach Public Sub Uhr() ist zwei Tabs eingerückt, das hatte ich übersehen.
    UnauthorizedAccessException heißt, dass Du auf diesen Pfad nicht zugreifen kannst.
    Das kann ziemlich knifflig werden, kann es sein, dass Du von Win7 nach Win10 umgezogen bist?
    ich empfehle Dir, die Bilder entweder in Dein Projektverzeichnis oder nach C:\Temp zu kopieren / verschieben und dort zuzugreifen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    kafffee schrieb:

    zur Laufzeit
    nicht.
    Mach mal einen Test und dann fälle eine Entscheidung.
    Mit Win8.1 habe ich bereits vor ~5 Jahren abgeschlossen, bei mir gab es solche Effekte beim Compilieren unter Win10 eines unter Win7 erstellten Projekts.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!