717566

Registry undokumentiert: Lange Dateinamen übergeben

Experimentierfreudige Windows-Anwender, vor allem Script- und Programmier-Kundige, stoßen früher oder später auf eine überaus lästige Eigenart der Windows-Registry. Sie kommt in bestimmten Fällen noch immer nicht mit langen Dateinamen klar: Sie möchten einen Dateityp unter "Hkey_Classes_Root" um einen Kontextmenüpunkt erweitern, über den ein Programm oder ein Script ausgeführt werden soll. Diesem wird der Name der markierten Datei (oder der Name des Ordners) übergeben. Trägt man den dafür üblichen Platzhalter "%1" in die Registry ein, übergibt Windows nur den kurzen, DOS-konformen 8+3-Dateinamen - selbst in den neuesten Versionen. PC-WELT zeigt Ihnen, wie Sie dieses Problem lösen können.

Anforderung

Fortgeschrittener

Zeitaufwand

Mittel

Problem:

Experimentierfreudige Windows-Anwender, vor allem Script- und Programmier-Kundige, stoßen früher oder später auf eine überaus lästige Eigenart der Windows-Registry (Windows 9x, ME, NT, 2000 und XP). Sie kommt in bestimmten Fällen noch immer nicht mit langen Dateinamen klar: Sie möchten einen Dateityp unter "Hkey_Classes_Root" um einen Kontextmenüpunkt erweitern, über den ein Programm oder ein Script ausgeführt werden soll. Diesem wird der Name der markierten Datei (oder der Name des Ordners) übergeben. Trägt man den dafür üblichen Platzhalter "%1" in die Registry ein, übergibt Windows nur den kurzen, DOS-konformen 8+3-Dateinamen - selbst in den neuesten Versionen.

Lösung:

Die Abhilfe ist denkbar einfach, aber weitgehend unbekannt. Windows gibt selbst den entscheidenden Hinweis: Statt des üblichen "%1" erscheint in seltenen Fällen in der Registry der alternative Platzhalter "%L". Dieser gibt den kompletten Namen an das Programm weiter. Verwenden Sie stets Anführungszeichen am Anfang und Ende solcher Platzhalter, damit auch Pfadnamen mit Leerzeichen nicht in vermeintlich mehrere Objekte zerfallen.

Sie sollten die Platzhalter also genau umgekehrt verwenden, wie es in der Windows-Registry offensichtlich üblich ist: "%L" ist der bessere Übergabeparameter, "%1" ist nur dann zu wählen, wenn Sie das Datei-Objekt an ein DOS-Programm übergeben wollen, da dieses den DOS-konformen 8+3-Namen benötigt.

0 Kommentare zu diesem Artikel
717566