Autor |
Beitrag |
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 05.11.10 22:06
Angenommen - natürlich ist das alles rein theoretisch  - ich habe eine schreibgeschützte Mp3-Datei auf der Platte rumliegen und möchte die ID3-Tags in meinem Player bearbeiten. Aktuell geht das einfach nicht, und da ich grade an dieser Funktion rumbastele, und ich beim Testen natürlich ausgerechnet so ein File erwischt habe, ... naja ist etwas blöd, wenn man den Fehler im Code sucht, er aber am Schreibschutz der Datei liegt  .
Frage ist nun, was ist in so einem Fall üblich? Einfach eine Fehlermeldung "Geht nicht weil Schreibschutz", oder ein Dialog mit weiteren Möglichkeiten wie "Abbrechen", "Schreibschutz entfernen und speichern", "Speichern und Schreibschutz wiederherstellen". Dazu dann noch die Option "Auswahl merken (für jetzt/ für immer) und nicht mehr nachfragen". Wäre hier ein dauerhaftes "Egal ob Schreibschutz, ich schreib einfach" sinnvoll? Eher nicht, oder?
Wenn der Schreibschutz nicht entfernbar ist (fehlende Rechte o.ä.) würde dann eine weitere "Geht wirklich nicht"-Fehlermeldung kommen.
Gibt es da irgendeine Regelung, was man da machen sollte? 
_________________ We are, we were and will not be.
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Fr 05.11.10 22:20
Also von Windows und diversen anderen Programmen kenn ich nur "Schreibschutz, geht nicht." Und dadurch muss ich dann selbst den Schreibschutz manuell entfernen. Ist mir auch ehrlichgesagt am liebsten so, da ich ja schon nen grund gehabt hab den schreibschutz dort hinzupflanzen. demnach liegt es auch in meiner verantwortung diesen zu entfernen.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Für diesen Beitrag haben gedankt: Gausi
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 05.11.10 22:49
Ich denke auch, dass es am sinnvollsten ist, dass man den Schreibschutz nicht im Programm entfernt.
Man kennt das ja: "Jaja, bestätige ich mal" und dann "Huch, warum hat das Programm denn sowas gemacht?"
Bei Delphi wird der Schreibschutz ja auch direkt beim Öffnen der Datei erkannt und angezeigt. Entfernen kann man aber nur den Schreibschutz im Editor. Speichern lässt sich die Datei dann nicht.
Das halte ich auch für eine sinnvolle Lösung. Beim Öffnen der MP3 nachschauen und bei einem vorhandenen Schreibschutz einfach das Editieren sperren. Natürlich mit Erklärung und vielleicht einer kleinen Hinweisbox mit einer kurzen Anleitung zum Entfernen des Schreibschutzes oder so.
Für diesen Beitrag haben gedankt: Gausi
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 05.11.10 22:50
Beim mcedit sieht das so aus, dass er, beim Versuch eine Datei zu speichern, für die man keine Schreibrechte hat, er eine Meldung bringt und dann nach einem Alternativnamen beim Speichern fragt.
Günstig wäre demnäch durchaus ein entsprechender Dialog, aber die reine API-Funktion sollte intern wirklich erstmal ne Exception schmeißen, um mitzuteilen, dass es nicht ging.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Für diesen Beitrag haben gedankt: Gausi
|
|
Gausi 
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 05.11.10 23:06
Ok, dann spar ich mir das Gehampel mit dem Umsetzen des Schreibschutzes und sorge nur für entsprechendes Feedback.
Die WriteToFile-Methoden schmeißen keine Exception, sondern liefern einen entsprechenden Fehlercode, den ich bisher einfach ignoriere. An einigen Stellen wird das auch so bleiben, aber an anderen muss ich da schon was ändern. 
_________________ We are, we were and will not be.
|
|
Gerd Kayser
      
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: Fr 05.11.10 23:24
|
|
Gausi 
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 05.11.10 23:45
Dass das aktuell nicht optimal geregelt ist, ist klar. Aber es geht nicht um ellenlange Dokumente, sondern um die ID3-Tags in den Dateien. Da benötigt man eher selten mehrere Minuten für.
Edit: Winamp lässt einen auch erstmal Stundenlang tippen - Die Fehlermeldung kommt erst beim Klick auf OK.
Wo der User Eingaben machen kann, werde ich das ändern, und ggf. auch die Eingabe selbst vorher sperren. An anderen Stellen werden aber auch automatisch Änderungen in den Tag übernommen - da jedesmal ne Fehlermeldung wäre auch nicht das Wahre.
_________________ We are, we were and will not be.
|
|
Gerd Kayser
      
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: Sa 06.11.10 00:00
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 06.11.10 00:01
Gausi hat folgendes geschrieben : | An anderen Stellen werden aber auch automatisch Änderungen in den Tag übernommen - da jedesmal ne Fehlermeldung wäre auch nicht das Wahre. |
Hier mache ich das wie Microsoft bei Windows. Ein Icon (bei Windows das Fähnchen in der Tray), an dem dann Warnungen und Hinweise visualisiert werden. Dann kann der Benutzer, wenn er das möchte, die Details als Liste anzeigen lassen.
|
|
elundril
      
Beiträge: 3747
Erhaltene Danke: 123
Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
|
Verfasst: Sa 06.11.10 00:03
Oder wenn du ein eigenes Fenster zum editieren von ID3-Tags hast, kannst du ja auch einfach die Eingabefelder auf Enabled:=False setzen und n fettes, rotes Label ganz oben hin pflanzen mit einer kurzen erklärung und einem "Link" aufs Hilfefile wo dann mehr drüber steht und wie man das lösen kann.
lg elundril
_________________ This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
|
|
Gausi 
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Sa 06.11.10 21:35
Ich werde das wohl so machen, bzw. habe das zum Teil schon umgesetzt:
Wenn eine manuelle Eingabe nicht gespeichert werden kann, gibts einen MessageDlg mit der entsprechenden Fehlermeldung. Zusätzlich wird der Vorfall in einer Error-Loglist gespeichert.
Wenn ein automatisches Speichern fehlschlägt (z.B. automatische Lyricsuche oder Abspielzähler erhöhen), dann wird das nur geloggt, ohne MessageDlg.
Wenn das bei einem manuell angestoßenem Vorgang passiert (z.B. Lyricsuche für mehrere Files) kommt am Ende des Vorgangs einmal eine Meldung, dass zwischendurch irgendwo was schiefgelaufen ist mit dem Hinweis auf das Logfile.
Wie genau ich anzeige, dass neue Einträge im Logfile sind, weiß ich noch nicht. Wahrscheinlich über einen weiteren Punkt im Hauptmenü, der dann eingeblendet wird.
Im ID3-Tag-Editor zeige ich in der Form.Caption ein zusätzliches "Schreibgeschützt" an. Man kann trotzdem bearbeiten - bei einem Fehlschlag werden die Eingaben nicht gelöscht. Man kann innerhalb des Editors einen Button klicken, der den Windows-Eigenschaftsdialog anzeigt, wo auch das Häkchen für den Schreibschutz zu finden ist.
Das wird in der Hilfe erläutert werden. Aber meine Zielgruppe dürfte wissen, was bei so einer Meldung zu tun ist. 
_________________ We are, we were and will not be.
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Sa 06.11.10 22:23
Abend
Eine andere Option wäre, die veränderte Datei auf Mausklick unter neuem Namen abzuspeichern und beim Beenden von NEMP noch einmal zu schauen, ob nun beide Dateien ungeschützt sind. Wenn nein, die alte löschen und die neue auf die alte umbenennen.
lg,
PS: Welches Programm außer NEMP schreibt denn in MP3s etwas rein? Würde mal vermuten, dass da ein Schreibschutz völlig umsonst angelegt wurde?!
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
Gausi 
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Sa 06.11.10 22:37
Ne, die Datei deswegen zu kopieren fände ich doch ziemlich doof und seltsam  .
Welche Programme da sonst noch (ungefragt/automatisch) was reinschreiben? Vom WMP weiß ich es sicher, iTunes afaik auch. Die schreiben in entsprechende Private-Frames des ID3Tags diverse Infos für die Medienbib - irgendwelche IDs und son Kram, u.a. für die Coveranzeige.
Beim WMP geht da auch manchmal einiges schief (ID3v2.4 wird nicht erkannt, und einfach ein neuer ID3v2.3-Tag davor gesetzt). Auch unter Windows 7 noch (grade getestet). Kann man ja auch nicht erwarten, dass MS da zwischen 2002 (da kam id3v2.4 raus) und heute was zu implementiert... 
_________________ We are, we were and will not be.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: So 07.11.10 06:27
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
rizla
      
Beiträge: 417
Erhaltene Danke: 2
XP
FPC mit Lazarus
|
Verfasst: Do 09.12.10 18:27
Und die Option "In Zukunft bei schreibgeschützten Dateien nicht warnen"?
Wenn ich mehrere (10) Dateien habe und 10 bestätigen müsste, daß ich tatsächlich den Schreibschutz
umgehen möchte, wäre wohl nervig. Oder?
:r:
_________________ if you have what they want - they'll find a way to take it (bruce sterling)
WOW - 10 JAHRE Mitglied beim Delphi-Forum. Wie die Zeit vergeht, Freunde.
|
|
|