Hallo ich hab ein kleines Problem mit meiner C# .net Programm. ich habe eine .BMP Datei die ich mit pictureBox1.Load("C:\\...) lade. Nun habe ich aber den wunsch, dass die Datei nicht nur einmal geladen wird, sodern ständig, da sich die Datei verändern kann (muss aber nicht) Würde mich über Codeschnipsel und Hilfe sehr freuen. Mit pictureBox1.Update(); und pictureBox1.Refresh(); habe ich es leider nicht hingekommen Viele Grüsse Andi
:
Verschoben durch User
Wieso rufst du nicht load nochmal auf? Update und refresh veranlassen nur ein Neuzeichnen... Es wird aber besser sein, mit einem FileSystemWatcher das Verzeichnis auf Änderungen zu überwachen, oder das Änderungsdatum zu vergleichen...
Andi schrieb: > da sich die Datei verändern kann Kann sie nicht. Eine geöffnete Datei kann nicht verändert werden. mfg.
Bin mir nicht sicher was Du machen willst. Ändert sich dein Bild im Verzeichnis aus dem du es lädst? oder ändert sich das Bild komplett wenn du es in C# bearbeitest? Falls zweiteres, dann könnte dir das folgende helfen. //Bild laden Bitmap TestBild = new Bitmap("Bild.jpg"); //Bild anzeigen, ohne TestBild dabei zu verändern pictureBox1.Image = (Bitmap)TestBild.Clone();
Thomas Eckmann schrieb: > Kann sie nicht. > Eine geöffnete Datei kann nicht verändert werden. Diese Funktion wird kaum dauerhaft die Datei offen halten...
xfgf schrieb: > Thomas Eckmann schrieb: >> Kann sie nicht. >> Eine geöffnete Datei kann nicht verändert werden. > > Diese Funktion wird kaum dauerhaft die Datei offen halten... normal wird nur ne kopie in den Speicher geschrieben und die Datei dann nicht mehr weiter beachtet.
Finde ich super wenn hier eine Diskusion ergibt. Also ich hab jetzt mal ein paar Varianten durchgespielt aber das ist immer noch nicht so wie ich mir das gedach habe. Das C Programm öffnet über den Befehl das ein Bild "C:\\bild" und dieses Bild wird in einer PictureBox dargestellt. Die Bildinformation (das Bild) ist auf der Festplatte gespeichert. Das funktioniert super. Ich habe jetzt ein zweites Programm das das C:\\bild erzeugt, bzw. wenn die Datei vorhanden ist überschreibt. Was ich jetzt machen will ist beide Programm ausführen und wenn das eine Programm C:\\bild erzeugt soll es in der Picturebox von meinem C Programm soft aktualisiert wird und auch sofort dargestellt werden. So will ich überprüfen ob das Bild auch richtig verändert unter C:\\bild gespeichert wurde. Ich hoffe mir kann da jemand einen Denkanstoss geben. Vielen Dank Andi
versuchs doch über das Änderungsdatum der Datei, wie hier breits vorgeschlagen wurde. // Dateien einlesen System.IO.FileInfo[] fileNames = dirInfo.GetFiles("*.*"); //Ausgabe von Datei, letztem Zugriff und der größe foreach (System.IO.FileInfo fi in fileNames) { Console.WriteLine("{0}: {1}: {2}", fi.Name, fi.LastAccessTime, fi.Length); }
Andi schrieb: > Ich hoffe mir kann da jemand einen Denkanstoss geben. Wurde schon gemacht: s.o. FileSystemWatcher http://msdn.microsoft.com/de-de/library/x7t1d0ky(v=VS.80).aspx Thomas Eckmann schrieb: > Andi schrieb: >> da sich die Datei verändern kann > > Kann sie nicht. > Eine geöffnete Datei kann nicht verändert werden. Geht problemlos, wenn man (zumindest unter Win) das nicht beim Öffnen der Datei verbietet http://msdn.microsoft.com/en-us/library/aa365430(v=vs.85).aspx
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.