Seltsames Verhalten im Kontextmenü New

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
Teton
New Member
New Member
Posts: 1
Joined: 2006-02-23, 08:59 UTC

Seltsames Verhalten im Kontextmenü New

Post by *Teton »

Guten Tag

Wenn man irgendwo mit der rechten Maustaste reinklickt (z.B. Desktop) kann man mit

Code: Select all

Neu -> OpenDocumentText
eine neue Datei erstellen (bei installiertem OpenOffice). Auf dem Desktop erscheint dann die Datei, bei der man noch einen Namen gibt, bestätigt, die Datei öffnet und das Dokument bearbeiten kann. Alles gut, soweit.

Wenn ich das im TC mache (bin gestern da sehr böse reingefallen), kommt eine Box, die nach dem Dateinamen fragt. Nach der Eingabe und Bestätigung kann man das ODT-File auch öffnen. Doch die Standardschrift ist Courier. Ändert man nun etwas an der Formatierung und will speichern, kommt die Meldung, dass beim Speichern im Text-Format Informationen verloren gehen könnten (logisch). Wenn man (unüberlegt) auf Nein klickt, verliert man sämtliche Formatierungen (wie mir leider passiert). Er speichert dann ein normales Text-File (inhaltlich), jedoch mit der Endung otd. Bei einem Ja speichert er die Sache wie gewünscht (inhaltich), ebenfalls mit einer ODT-Endung, aber inklusive Formatierung.

Weiss nicht genau, wo der Bug liegt. Aber denke, der TC macht hier etwas anders als der Explorer... Oder liegts am OpenOffice?

grüsse
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Bestätigt.
Im Explorer wird bei New->OpenDocumentText die Datei soffice.odt aus dem Verzeichnis C:\Dokumente und Einstellungen\All Users\Vorlagen in das aktuelle Verzeichnis kopiert, und in Place umbenannt.

Im TC wird hingegen nach der Eingabe des Dateinamens eine leere Datei mit der Extension .odt erzeugt.

Workaround:
Wenn man alle Vorlagen aus C:\Dokumente und Einstellungen\All Users\Vorlagen nach C:\Dokumente und Einstellungen\USERNAME\Vorlagen kopiert, wird auch im TC die korrekte OpenOffice Vorlage benutzt. :-)

Im Gegensatz zum Explorer scheint der TC Vorlagen nur unter dem angemeldete USERNAME zu suchen. Das wäre dann ein Bug. :-(

Gruß
Holger
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50567
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Leider musste ich diese Funktion von Hand nachprogrammieren, da sie das normale Kontextmenü nicht anbietet. Da die Funktion von Microsoft nur schlecht dokumentiert ist, war mir nicht bekannt, dass der Explorer auch noch in anderen Verzeichnissen nach den Vorlagen sucht. Ich werde versuchen, das noch einzubauen. Sind noch andere Verzeichnisse ausser "all users" betroffen?
Author of Total Commander
https://www.ghisler.com
User avatar
HolgerK
Power Member
Power Member
Posts: 5411
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

Soweit ich es überblicke, sind es nur die beiden Verzeichnisse, wobei All users nur als fallback dient.
unter http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shgetfolderpath.asp
und http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/enums/csidl.asp#CSIDL_COMMON_DOCUMENTS
werden im wesentlichen nur
CSIDL_TEMPLATES (0x0015)
The file system directory that serves as a common repository for document templates. A typical path is C:\Documents and Settings\username\Templates.
...
CSIDL_COMMON_TEMPLATES (0x002d)
The file system directory that contains the templates that are available to all users. A typical path is C:\Documents and Settings\All Users\Templates. Valid only for Windows NT systems.
erwähnt.

Wobei All users unter 95/98 anscheinend nicht existiert!

Verzeichnisse wie C:\Dokumente und Einstellungen\Default User\Vorlagen\
und C:\WINDOWS\system32\config\systemprofile\Vorlagen\
kann man glaube ich getrost ausser acht lassen, da sie nur als Vorlage für neue User accounts oder System Installatione/Restaurationen zu dienen scheinen.

Einen Überblick darüber was sich MS bei den Documents and settings gedacht hat, gibt übrigens:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnw2kcli/html/W2Kcli_chapter4.asp
Dort sind auch Hinweise auf den korrekten Umgang und die Kompatibilität von SHGetFolderPath enthalten:
To help ensure your application can run on Windows 9x, Windows NT 4 as well as Windows 2000, always link to the SHGetFolderPath implementation in SHFOLDER.DLL. Windows 2000 natively implements SHGetFolderPath in SHELL32.DLL, but other versions of Windows do not include SHGetFolderPath in SHELL32.DLL.
Eine weitere interessante Frage stellt sich übrigens bei roaming profiles: wenn man auf sich ine einem MS-Netzwerk mit DOMAIN.USERNAME auf einem Rechner einloggt, wird das Profile vom Server auf die lokale Maschine kopiert!
Zumindestens die Dokumente sind dann auch lokal unter C:\Dokumente und Einstellungen\DOMAIN.USERNAME\ Eigene Dateien\ abgelegt.
Schätze mal, dass ShGetFolderPath auch dann noch korrekt arbeitet.
(Bin selber kein Admin, und nutze sowas eher selten/ungern, vonwegen der Rückstände die dann auf fremden Rechner zurückbleiben).

Gruß
Holger

Nachtrag: hab noch eine Stelle gefunden:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/templatefolder.asp
Platform SDK: Windows Installer
TemplateFolder Property
The installer sets the TemplateFolder property to the full path to the Template folder for the current user. Common values for this property are C:\Winnt\Profiles\[LogonUser]\ShellNew\ (Windows NT/Windows 2000) and C:\Windows\ShellNew\ (Windows 95 and Windows 98 ).

On Windows 2000 only, if the ALLUSERS property is set, this property points to a file system directory that contains the templates that are available to all users. A common path is C:\WINNT\Profiles\All Users\Templates.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 50567
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Danke, werde allusers zusätzlich einbauen.
Author of Total Commander
https://www.ghisler.com
Post Reply