Name && Icon && Dateibeschreibung bei eigenem Dateityp

Hallo, ich habe ein MFC SDI Projekt erstellt (MS Visual Studio 2005) mit einer eigenen Dateiendung. Nun meine Frage:
  • Ich habe bei dem Namen sowie der Beschreibung nix beziehungsweise Mist eingegeben. Wie kann ich das jetzt ändern?
  • Ich habe zwar das Icon mit der ID IDR_<Projektname>TYPE geändert, es wird aber ein anderes Icon angezeigt. :confused:

Hoffe ihr könnt mir helfen

mfg DR
 
In der Resourcen-Ansicht gibt es eine String-Table. Da gibt es den Eintrag IDR_<ProjektName>. Da sind diese Beschreibungen in einem String zusammengefasst. Was davon was ist steht irgendwo in der MSDN vergraben. Lässt sich aber auch durch Experimentieren herausbekommen.

Bei dem Icon musst du prüfen, ob da evtl. andere Bildtypen mit drin sind. Das ist etwas dämlich gemacht: Öffne das Icon im Resource-Editor. Jetzt gibt es im Menüpunkt "Bild" einen Punkt "aktuelle Bildtypen". Da kannst du die einzelnen Icons in dem einen Icon umschalten.
 
Dankeschön, habe den Eintrag in der StringTable geändert, hatt aber nix gebracht...
(bei Dateibeschreibung wird immer noch: TODO: <Dateibeschreibung> angezeigt).

PS: das mit dem Icon hat geklappt. thx
 
Ach so, du meinst den Versionstab. Ist auch in der Resourcen-Ansicht, da gibt es einen Versions-Eintrag. Dort sind diese Strings versteckt.
 
Ja dort habe ich auch alles schon geändert, selbst die manifest-Datei habe ich schon durchkämmt. Und eine Suche im gesamten Projekt nach TODO: <Dateibeschreibung> liefert auch kein Ergebnis.
Vieleicht hat sich die Endung schon irgendwie im Windows regestriert und reagiert nicht mehr auf Änderungen in meinem Programm :confused:
 
Nochmal von vorne: Wo genau steht dieses "TODO: <Dateibeschreibung>"? Bei den von deinem MFC-Projekt als Dokumenten erstellen Dateien?

Wenn du den String in den Resourcen geändert hast (den IDR_xxx), dann sollte eigentlich ein Aufruf von RegisterShellFileTypes (Member von CWinApp) diese Strings nochmal neu einsetzen.

Aufrufe dazu sollten in der InitInstance gesetzt sein, wenn nicht, pack die da wieder rein. Einmal RegisterShellFileTypes und einmal EnableShellOpen.
 
Nochmal von vorne: Wo genau steht dieses "TODO: <Dateibeschreibung>"? Bei den von deinem MFC-Projekt als Dokumenten erstellen Dateien?

Genau. Also ich habe eine eigene Dateiendung (.vok). Ich erstelle so eine Datei, klicke mit der rechten Maustaste darauf und gehe auf Eigenschaften.
Dort steht u.a.: Dateityp: [Projektname].Dokument
und auch : Öffnen mit: [Icon] TODO: <Dateibeschreibung>

Also ich habe den Projektnamen nachträglich geändert, alles sonst klappt (Titel, Prozessname, Regestrieeintrag,....) nur hier steht noch der alte Projektnamename mit nem .Dokument :mad:

Wenn du den String in den Resourcen geändert hast (den IDR_xxx), dann sollte eigentlich ein Aufruf von RegisterShellFileTypes (Member von CWinApp) diese Strings nochmal neu einsetzen.
Aufrufe dazu sollten in der InitInstance gesetzt sein, wenn nicht, pack die da wieder rein. Einmal RegisterShellFileTypes und einmal EnableShellOpen.

Ist alles gesetzt...
C++:
	// DDE-Execute-Open aktivieren
	EnableShellOpen();
	RegisterShellFileTypes(TRUE);
:( :( :(

mfg
 
Seltsam.

Fallen mir noch zwei Ideen ein:

1) Hast du den Source von MFC installiert? Dann step mal im Debugger in RegisterShellFileTypes rein. Der müsste eigentlich des Öfteren eine Funktion _AfxSetRegKey aufrufen, dort stehen auch die Keys drin. Prüf mal, ob er da drin evtl. irgendwo aussteigt (weil es da ja schon Einträge gibt). Vielleich gibt das einen Hinweis drauf, woran es liegen könnte.

2) Brachial: Müsste eigentlich auch gehen. In dem Eigenschaften-Dialog, wo es falsch drinsteht, Klick mal auf Ändern und wähle die aktuelle Exe deiner Applikation aus. Dann sollte Windows sich da die aktuellen Daten rausholen.

Ich denke, MFC hat da ein Problem, weil die Einträge in der Registry schon existieren und überschreibt die nicht einfach.
 
Seltsam.
2) Brachial: Müsste eigentlich auch gehen. In dem Eigenschaften-Dialog, wo es falsch drinsteht, Klick mal auf Ändern und wähle die aktuelle Exe deiner Applikation aus. Dann sollte Windows sich da die aktuellen Daten rausholen.

Hat geklappt, jetzt steht mein neue Dateiname statt TODO: <Dateibeschreibung>.

Aber der Eintrag bei Dateityp stimmt immer noch net.

Ich denke, MFC hat da ein Problem, weil die Einträge in der Registry schon existieren und überschreibt die nicht einfach.

Ok, ich war mal in der Registry, dort stand bei Dateityp die falsche (alte) Beschreibung. Hab den Schlüssel gelöscht und mein Prog neu gestartet. Jetz steht der richtige Eintrag, aber im Explorer steht immer noch der alte.
Vieleicht klappts ja beim Neustart.

mfg

Edit: Ja jetz klappts endlich, vielen Danke!!
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück